mirror of
https://github.com/squidfunk/mkdocs-material.git
synced 2024-11-30 18:24:35 +01:00
Refactored to use URLs at all times
This commit is contained in:
parent
eb82c8d586
commit
c79b786ea6
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
material/assets/javascripts/bundle.16398d48.min.js.map
Normal file
1
material/assets/javascripts/bundle.16398d48.min.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
||||
{
|
||||
"assets/javascripts/bundle.js": "assets/javascripts/bundle.14f179c1.min.js",
|
||||
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.14f179c1.min.js.map",
|
||||
"assets/javascripts/bundle.js": "assets/javascripts/bundle.16398d48.min.js",
|
||||
"assets/javascripts/bundle.js.map": "assets/javascripts/bundle.16398d48.min.js.map",
|
||||
"assets/javascripts/worker/search.js": "assets/javascripts/worker/search.926ffd9e.min.js",
|
||||
"assets/javascripts/worker/search.js.map": "assets/javascripts/worker/search.926ffd9e.min.js.map",
|
||||
"assets/stylesheets/app-palette.scss": "assets/stylesheets/app-palette.3f90c815.min.css",
|
||||
|
@ -190,7 +190,7 @@
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block scripts %}
|
||||
<script src="{{ 'assets/javascripts/bundle.14f179c1.min.js' | url }}"></script>
|
||||
<script src="{{ 'assets/javascripts/bundle.16398d48.min.js' | url }}"></script>
|
||||
{%- set translations = {} -%}
|
||||
{%- for key in [
|
||||
"clipboard.copy",
|
||||
|
@ -58,7 +58,7 @@ interface MountOptions {
|
||||
*/
|
||||
export function mountHeaderTitle(
|
||||
{ header$, viewport$ }: MountOptions
|
||||
): OperatorFunction<HTMLElement, any> {
|
||||
): OperatorFunction<HTMLElement, boolean> {
|
||||
return pipe(
|
||||
switchMap(el => useComponent("main")
|
||||
.pipe(
|
||||
|
@ -59,7 +59,6 @@ import {
|
||||
watchToggle,
|
||||
setToggle,
|
||||
getElements,
|
||||
getLocation,
|
||||
watchMedia,
|
||||
watchDocument,
|
||||
watchLocation,
|
||||
@ -213,7 +212,7 @@ export function initialize(config: unknown) {
|
||||
const navigation$ = useComponent("navigation")
|
||||
.pipe(
|
||||
mountNavigation({ header$, main$, viewport$, screen$ }),
|
||||
shareReplay(1)
|
||||
shareReplay(1) // shareReplay because there might be late subscribers
|
||||
)
|
||||
|
||||
const toc$ = useComponent("toc")
|
||||
@ -260,7 +259,8 @@ export function initialize(config: unknown) {
|
||||
|
||||
// Close drawer and search on hash change
|
||||
// put into navigation...
|
||||
hash$.subscribe(x => {
|
||||
// TODO: replace with popstate?
|
||||
hash$.subscribe(() => {
|
||||
useToggle("drawer").subscribe(el => {
|
||||
setToggle(el, false)
|
||||
})
|
||||
|
@ -68,7 +68,7 @@ export function watchDocumentSwitch(
|
||||
): Observable<Document> {
|
||||
return location$
|
||||
.pipe(
|
||||
startWith(location), // TODO: getLocation should return URL or Location
|
||||
startWith(getLocation()),
|
||||
distinctUntilKeyChanged("pathname"),
|
||||
skip(1),
|
||||
|
||||
@ -81,7 +81,7 @@ export function watchDocumentSwitch(
|
||||
.pipe<Document, Document>(
|
||||
pluck("response"),
|
||||
catchError(() => {
|
||||
setLocation(url.href) // TODO: setLocation should accept URL or location
|
||||
setLocation(url)
|
||||
return NEVER
|
||||
})
|
||||
)
|
||||
|
@ -20,8 +20,7 @@
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
import { Subject, fromEvent } from "rxjs"
|
||||
import { map } from "rxjs/operators"
|
||||
import { Subject } from "rxjs"
|
||||
|
||||
/* ----------------------------------------------------------------------------
|
||||
* Functions
|
||||
@ -30,19 +29,24 @@ import { map } from "rxjs/operators"
|
||||
/**
|
||||
* Retrieve location
|
||||
*
|
||||
* @return Location
|
||||
* This function will return a `URL` object (and not `Location`) in order to
|
||||
* normalize typings across the application. Furthermore, locations need to be
|
||||
* tracked without setting them and `Location` is a singleton which represents
|
||||
* the current location.
|
||||
*
|
||||
* @return URL
|
||||
*/
|
||||
export function getLocation(): string {
|
||||
return location.href
|
||||
export function getLocation(): URL {
|
||||
return new URL(location.href)
|
||||
}
|
||||
|
||||
/**
|
||||
* Set location
|
||||
*
|
||||
* @param value - New location
|
||||
* @param url - URL to change to
|
||||
*/
|
||||
export function setLocation(value: string): void {
|
||||
location.href = value
|
||||
export function setLocation(url: URL): void {
|
||||
location.href = url.href
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
@ -53,13 +57,5 @@ export function setLocation(value: string): void {
|
||||
* @return Location subject
|
||||
*/
|
||||
export function watchLocation(): Subject<URL> {
|
||||
const location$ = new Subject<URL>()
|
||||
// fromEvent<PopStateEvent>(window, "popstate")
|
||||
// .pipe(
|
||||
// map(getLocation)
|
||||
// )
|
||||
// .subscribe(location$)
|
||||
|
||||
/* Return location subject */
|
||||
return location$
|
||||
return new Subject<URL>()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user