diff --git a/org/theme-readtheorg-local.setup b/org/theme-readtheorg-local.setup index 8ec3dfa..5718c4a 100644 --- a/org/theme-readtheorg-local.setup +++ b/org/theme-readtheorg-local.setup @@ -8,5 +8,21 @@ #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: -#+HTML_HEAD: #+HTML_HEAD: +#+HTML_HEAD: + +#+MACRO: enable-search #+HTML_HEAD: +#+MACRO: disable-search #+HTML_HEAD: +#+MACRO: set-search-limit #+HTML_HEAD: + +* Search Configuration (v1.12) :noexport: +Usage: Optionally place these macros after including this file, before your content. +- {{{enable-search}}}: :: enable search bar (default) +- {{{disable-search}}}: :: disable search bar +- {{{set-search-limit(N)}}}: :: Limit results to N (default: 0 for no limit) + +Example: +#+BEGIN_SRC org +{{{enable-search}}} +{{{set-search-limit(10)}}} +#+END_SRC diff --git a/org/theme-readtheorg.setup b/org/theme-readtheorg.setup index 7a4361f..b21aca6 100644 --- a/org/theme-readtheorg.setup +++ b/org/theme-readtheorg.setup @@ -8,5 +8,21 @@ #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: -#+HTML_HEAD: #+HTML_HEAD: +#+HTML_HEAD: + +#+MACRO: enable-search #+HTML_HEAD: +#+MACRO: disable-search #+HTML_HEAD: +#+MACRO: set-search-limit #+HTML_HEAD: + +* Search Configuration (v1.12) :noexport: +Usage: Optionally place these macros after including this file, before your content. +- {{{enable-search}}}: :: enable search bar (default) +- {{{disable-search}}}: :: disable search bar +- {{{set-search-limit(N)}}}: :: Limit results to N (default: 0 for no limit) + +Example: +#+BEGIN_SRC org +{{{enable-search}}} +{{{set-search-limit(10)}}} +#+END_SRC diff --git a/src/readtheorg_theme/js/search.js b/src/readtheorg_theme/js/search.js index ed78ca6..99b676c 100644 --- a/src/readtheorg_theme/js/search.js +++ b/src/readtheorg_theme/js/search.js @@ -1,11 +1,47 @@ // -*- mode: js2 -*- -// readh-the-org-search v1.8 +// read-the-org-search + +// Configuration +const SEARCH_VERSION = "v1.12"; + +// Default configuration +window.searchConfig = { + enableSearch: true, + searchResultLimit: 0 +}; + +// Configuration function + + +function enableSearch(enableSearch, searchResultLimit) { + window.searchConfig.enableSearch = true; +} + + +function disableSearch() { + window.searchConfig.enableSearch = false; +} + + +function setSearchLimit(searchResultLimit) { + window.searchConfig.searchResultLimit = searchResultLimit; +} + + +console.log(`custom-search.js ${SEARCH_VERSION} is being loaded`); -console.log('custom-search.js v1.8 is being loaded'); $(document).ready(function() { - console.log('Document ready, initializing search functionality v1.8'); + console.log(`Document ready, initializing search ${SEARCH_VERSION}`); + + const ENABLE_SEARCH = window.searchConfig.enableSearch; + const SEARCH_RESULT_LIMIT = window.searchConfig.searchResultLimit; + + if (!ENABLE_SEARCH) { + console.log('Search functionality is disabled'); + return; + } $('#table-of-contents').prepend(`