| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- const themeOption = ({ label, value }, settings) => `\
- <label class="_settings-label _theme-label">
- <input type="radio" name="theme" value="${value}"${
- settings.theme === value ? " checked" : ""
- }>
- ${label}
- </label>\
- `;
- app.templates.settingsPage = (settings) => `\
- <h1 class="_lined-heading">Preferences</h1>
- <div class="_settings-fieldset">
- <h2 class="_settings-legend">Theme:</h2>
- <div class="_settings-inputs">
- ${
- settings.autoSupported
- ? themeOption(
- {
- label: "Automatic <small>Matches system setting</small>",
- value: "auto",
- },
- settings,
- )
- : ""
- }
- ${themeOption({ label: "Light", value: "default" }, settings)}
- ${themeOption({ label: "Dark", value: "dark" }, settings)}
- </div>
- </div>
- <div class="_settings-fieldset">
- <h2 class="_settings-legend">General:</h2>
- <div class="_settings-inputs">
- <label class="_settings-label _setting-max-width">
- <input type="checkbox" form="settings" name="layout" value="_max-width"${
- settings["_max-width"] ? " checked" : ""
- }>Enable fixed-width layout
- </label>
- <label class="_settings-label _setting-text-justify-hyphenate">
- <input type="checkbox" form="settings" name="layout" value="_text-justify-hyphenate"${
- settings["_text-justify-hyphenate"] ? " checked" : ""
- }>Enable justified layout and automatic hyphenation
- </label>
- <label class="_settings-label _hide-on-mobile">
- <input type="checkbox" form="settings" name="layout" value="_sidebar-hidden"${
- settings["_sidebar-hidden"] ? " checked" : ""
- }>Automatically hide and show the sidebar
- <small>Tip: drag the edge of the sidebar to resize it.</small>
- </label>
- <label class="_settings-label _hide-on-mobile">
- <input type="checkbox" form="settings" name="noAutofocus" value="_no-autofocus"${
- settings.noAutofocus ? " checked" : ""
- }>Disable autofocus of search input
- </label>
- <label class="_settings-label">
- <input type="checkbox" form="settings" name="autoInstall" value="_auto-install"${
- settings.autoInstall ? " checked" : ""
- }>Automatically download documentation for offline use
- <small>Only enable this when bandwidth isn't a concern to you.</small>
- </label>
- <label class="_settings-label _hide-in-development">
- <input type="checkbox" form="settings" name="analyticsConsent"${
- settings.analyticsConsent ? " checked" : ""
- }>Enable tracking cookies
- <small>With this checked, we enable Google Analytics and Gauges to collect anonymous traffic information.</small>
- </label>
- </div>
- </div>
- <div class="_settings-fieldset _hide-on-mobile">
- <h2 class="_settings-legend">Scrolling:</h2>
- <div class="_settings-inputs">
- <label class="_settings-label">
- <input type="checkbox" form="settings" name="smoothScroll" value="1"${
- settings.smoothScroll ? " checked" : ""
- }>Use smooth scrolling
- </label>
- <label class="_settings-label _setting-native-scrollbar">
- <input type="checkbox" form="settings" name="layout" value="_native-scrollbars"${
- settings["_native-scrollbars"] ? " checked" : ""
- }>Use native scrollbars
- </label>
- <label class="_settings-label">
- <input type="checkbox" form="settings" name="arrowScroll" value="1"${
- settings.arrowScroll ? " checked" : ""
- }>Use arrow keys to scroll the main content area
- <small>With this checked, use <code class="_label">shift</code> + <code class="_label">↑</code><code class="_label">↓</code><code class="_label">←</code><code class="_label">→</code> to navigate the sidebar.</small>
- </label>
- <label class="_settings-label">
- <input type="checkbox" form="settings" name="spaceScroll" value="1"${
- settings.spaceScroll ? " checked" : ""
- }>Use spacebar to scroll during search
- </label>
- <label class="_settings-label">
- <input type="number" step="0.1" form="settings" name="spaceTimeout" min="0" max="5" value="${
- settings.spaceTimeout
- }"> Delay until you can scroll by pressing space
- <small>Time in seconds</small>
- </label>
- </div>
- </div>
- <p class="_hide-on-mobile">
- <button type="button" class="_btn" data-action="export">Export</button>
- <label class="_btn _file-btn"><input type="file" form="settings" name="import" accept=".json">Import</label>
- <p>
- <button type="button" class="_btn-link _reset-btn" data-behavior="reset">Reset all preferences and data</button>\
- `;
|