feat: add search modal

This commit is contained in:
mostafaei2002 2024-05-14 10:11:07 +03:30
parent 44dd71c7c7
commit 4106ff080b
2 changed files with 174 additions and 124 deletions

View File

@ -1,15 +1,19 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta charset="utf-8"> <meta charset="utf-8" />
<title>{% if page.title %}{{ page.title }} - {% endif %}{{ config.site_name }}</title> <title>
<link href="{{ 'img/favicon.ico'|url }}" rel="icon" type="image/x-icon"> {% if page.title %}{{ page.title }} - {% endif %}{{ config.site_name }}
</title>
<link href="{{ 'img/favicon.ico'|url }}" rel="icon" type="image/x-icon" />
<link rel="canonical" href="{{ page.canonical_url|url }}" /> <link rel="canonical" href="{{ page.canonical_url|url }}" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="Django, API, REST{% if page %}, {{ page.title }}{% endif %}"> <meta
<meta name="author" content="Tom Christie"> name="description"
content="Django, API, REST{% if page %}, {{ page.title }}{% endif %}"
/>
<meta name="author" content="Tom Christie" />
<!-- Le styles --> <!-- Le styles -->
<!-- <link href="{{ 'css/prettify.css'|url }}" rel="stylesheet"> <!-- <link href="{{ 'css/prettify.css'|url }}" rel="stylesheet">
@ -17,20 +21,22 @@
<link href="{{ 'css/bootstrap-responsive.css'|url }}" rel="stylesheet"> <link href="{{ 'css/bootstrap-responsive.css'|url }}" rel="stylesheet">
<link href="{{ 'css/default.css'|url }}" rel="stylesheet"> --> <link href="{{ 'css/default.css'|url }}" rel="stylesheet"> -->
<link rel="stylesheet" href="{{ 'css/bootstrap5.css'|url }}"> <link rel="stylesheet" href="{{ 'css/bootstrap5.css'|url }}" />
<script type="text/javascript"> <script type="text/javascript">
var _gaq = _gaq || []; var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-18852272-2']); _gaq.push(["_setAccount", "UA-18852272-2"]);
_gaq.push(['_trackPageview']); _gaq.push(["_trackPageview"]);
(function () { (function () {
var ga = document.createElement('script'); var ga = document.createElement("script");
ga.type = 'text/javascript'; ga.type = "text/javascript";
ga.async = true; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; ga.src =
var s = document.getElementsByTagName('script')[0]; ("https:" == document.location.protocol
? "https://ssl"
: "http://www") + ".google-analytics.com/ga.js";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(ga, s); s.parentNode.insertBefore(ga, s);
})(); })();
</script> </script>
@ -49,38 +55,72 @@
} }
</style> </style>
</head> </head>
<body onload="prettyPrint()" class="{% if page and page.is_homepage %}index{% endif %}-page"> <body
onload="prettyPrint()"
class="{% if page and page.is_homepage %}index{% endif %}-page"
>
<div class="wrapper"> <div class="wrapper">
{% include "nav.html" %} {% include "nav.html" %}
<div class="body-content"> <div class="body-content">
<div class="container-fluid"> <div class="container-fluid">
<!-- Search Modal --> <div
<div id="mkdocs_search_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> class="modal fade"
id="mkdocs_search_modal"
tabindex="-1"
aria-labelledby="searchModal"
aria-hidden="true"
>
<div
class="modal-dialog modal-dialog-centered modal-dialog-scrollable"
>
<div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> <h3 class="modal-title fs-5" id="search_modal_label">
<h3 id="myModalLabel">Documentation search</h3> Documentation Search
</h3>
<button
type="button"
class="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<form role="form" autocomplete="off"> <form role="form" autocomplete="off">
<div class="form-group"> <div class="form-group">
<input type="text" name="q" class="form-control" placeholder="Search..." id="mkdocs-search-query"> <input
type="text"
name="q"
class="form-control"
placeholder="Search..."
id="mkdocs-search-query"
/>
</div> </div>
</form> </form>
<div id="mkdocs-search-results"></div>
<div id="mkdocs-search-results" class="mt-3"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Close</button> <button
type="button"
class="btn btn-secondary"
data-bs-dismiss="modal"
>
Close
</button>
</div>
</div>
</div> </div>
</div> </div>
<!-- Modal End -->
<div class="row-fluid"> <div class="row-fluid">
<div class="span3"> <div class="span3">
<div id="table-of-contents"> <div id="table-of-contents">
<ul class="nav nav-list side-nav well sidebar-nav-fixed"> <!-- <ul class="nav nav-list side-nav well sidebar-nav-fixed">
{% if page and page.is_homepage %} {% if page and page.is_homepage %}
<li class="main"> <li class="main">
<a href="#">Django REST framework</a> <a href="#">Django REST framework</a>
@ -103,33 +143,35 @@
{% if page.toc %}<hr/>{% endif %} {% if page.toc %}<hr/>{% endif %}
<div id="sidebarInclude"> <div id="sidebarInclude">
</div> </div>
</ul> </ul> -->
</div> </div>
</div> </div>
<div id="main-content" class="span9"> <div id="main-content" class="span9">
{% block content %} {% block content %} {% if page.meta.source %} {% for filename in
{% if page.meta.source %} page.meta.source %}
{% for filename in page.meta.source %} <a
<a class="github" href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/{{ filename }}"> class="github"
href="https://github.com/encode/django-rest-framework/tree/master/rest_framework/{{ filename }}"
>
<span class="label label-info">{{ filename }}</span> <span class="label label-info">{{ filename }}</span>
</a> </a>
{% endfor %} {% endfor %} {% endif %} {{ page.content }} {% endblock %}
{% endif %} </div>
<!--/span-->
{{ page.content }} </div>
{% endblock %} <!--/row-->
</div>
</div> <!--/span--> <!--/.fluid-container-->
</div> <!--/row--> </div>
</div> <!--/.fluid-container--> <!--/.body content-->
</div> <!--/.body content-->
<div id="push"></div> <div id="push"></div>
</div> <!--/.wrapper --> </div>
<!--/.wrapper -->
<footer class="span12"> <footer class="span12">
<p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>. <p>
Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.
</p> </p>
</footer> </footer>
@ -142,7 +184,9 @@
<script src="{{ 'js/bootstrap-2.1.1-min.js'|url }}"></script> <script src="{{ 'js/bootstrap-2.1.1-min.js'|url }}"></script>
<script src="{{ 'js/theme.js'|url }}"></script> --> <script src="{{ 'js/theme.js'|url }}"></script> -->
<script>var base_url = '{{ base_url }}';</script> <script>
var base_url = "{{ base_url }}";
</script>
<script src="{{ 'js/bootstrap5.bundle.js'|url }}"></script> <script src="{{ 'js/bootstrap5.bundle.js'|url }}"></script>
@ -152,25 +196,30 @@
<script> <script>
var shiftWindow = function () { var shiftWindow = function () {
scrollBy(0, -50) scrollBy(0, -50);
}; };
if (location.hash) shiftWindow(); if (location.hash) shiftWindow();
window.addEventListener("hashchange", shiftWindow); window.addEventListener("hashchange", shiftWindow);
$('.dropdown-menu').on('click touchstart', function(event) { $(".dropdown-menu").on("click touchstart", function (event) {
event.stopPropagation(); event.stopPropagation();
}); });
// Dynamically force sidenav/dropdown to no higher than browser window // Dynamically force sidenav/dropdown to no higher than browser window
$('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130); $(".side-nav, .dropdown-menu").css(
"max-height",
window.innerHeight - 130
);
$(function () { $(function () {
$(window).resize(function () { $(window).resize(function () {
$('.side-nav, .dropdown-menu').css('max-height', window.innerHeight - 130); $(".side-nav, .dropdown-menu").css(
"max-height",
window.innerHeight - 130
);
}); });
}); });
</script> </script>
</body> </body>
</html> </html>

View File

@ -140,15 +140,16 @@
{% endif %} {% endif %}
<div class="d-flex gap-2"> <div class="d-flex gap-2">
<a <button
id="search_modal_btn" type="button"
id="search_modal_show"
class="btn btn-sm btn-secondary" class="btn btn-sm btn-secondary"
href="#search_modal" href="#mkdocs_search_modal"
data-bs-toggle="modal" data-bs-toggle="modal"
data-bs-target="#search_modal" data-bs-target="#mkdocs_search_modal"
> >
Search Search
</a> </button>
<!-- prettier-ignore --> <!-- prettier-ignore -->
<a <a
{% if page.previous_page %}href="{{ page.previous_page.url|url }}"{% endif %} {% if page.previous_page %}href="{{ page.previous_page.url|url }}"{% endif %}