mirror of
https://github.com/jzillmann/pdf-to-markdown.git
synced 2025-06-24 19:41:24 +02:00
Support bootstrapping URL, debug and stage from URL params
This commit is contained in:
parent
c8cfbebb92
commit
8e9642c9ed
@ -1,10 +1,12 @@
|
||||
import { Writable, writable } from 'svelte/store';
|
||||
import { debugFromParams, debugStageFromParams } from './processParameters';
|
||||
|
||||
export const debugEnabled = storedWritable('debugEnabled', false);
|
||||
export const debugStage = storedWritable('debugStage', 0);
|
||||
export const debugEnabled = storedWritable('debugEnabled', false, debugFromParams);
|
||||
export const debugStage = storedWritable('debugStage', 0, debugStageFromParams);
|
||||
|
||||
function storedWritable<T>(key: string, defaultValue: T): Writable<T> {
|
||||
const store = writable(fromLocalStore(key, defaultValue));
|
||||
function storedWritable<T>(key: string, defaultValue: T, paramLoadFunction: (defaultValue: T) => T): Writable<T> {
|
||||
const value = paramLoadFunction(fromLocalStore(key, defaultValue));
|
||||
const store = writable(value);
|
||||
store.subscribe((value) => {
|
||||
localStorage.setItem(key, JSON.stringify(value));
|
||||
});
|
||||
|
@ -7,12 +7,21 @@
|
||||
import ProgressRing from '../components/ProgressRing.svelte';
|
||||
import Checkbox from '../components/Checkbox.svelte';
|
||||
import { debugEnabled } from '../config';
|
||||
import { urlFromParams } from '../processParameters';
|
||||
|
||||
let specifiedFileName: string;
|
||||
let dragover = false;
|
||||
let upload: Promise<any>;
|
||||
let rejectionError: string;
|
||||
let parseProgress: Progress;
|
||||
|
||||
const url = urlFromParams();
|
||||
if (url) {
|
||||
dragover = true;
|
||||
specifiedFileName = url;
|
||||
upload = loadUrl(handleProgress, url);
|
||||
}
|
||||
|
||||
function handleUrlLoad() {
|
||||
dragover = true;
|
||||
let answer = prompt('Url of the pdf');
|
||||
|
26
ui/src/processParameters.ts
Normal file
26
ui/src/processParameters.ts
Normal file
@ -0,0 +1,26 @@
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
|
||||
export function debugFromParams(defaultValue: boolean): boolean {
|
||||
const defined = params.has('debug');
|
||||
if (!defined) {
|
||||
return defaultValue;
|
||||
}
|
||||
return params.get('debug') !== 'false';
|
||||
}
|
||||
|
||||
export function debugStageFromParams(defaultValue: number): number {
|
||||
const stage = +params.get('stage');
|
||||
if (!Number.isInteger(stage)) {
|
||||
return defaultValue;
|
||||
}
|
||||
return stage;
|
||||
}
|
||||
|
||||
export function urlFromParams(): string {
|
||||
return getParameterByName('url');
|
||||
}
|
||||
|
||||
function getParameterByName(name: string): string {
|
||||
const match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
|
||||
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user