>

Everything a citation needs, beside the PDF

A screen capture becomes evidence only when the details travel with it. Six citation styles in nine languages, a record reference managers can actually read, and a pointer inside the PDF so a language model finds the rest. Plus the measurement that explains why none of it arrived for a long time.

Measured 2026-08-18 · raw data

Two files, two jobs

They are not two copies of the same thing. The text file is written to be read and copied from: one line per style, ready for a bibliography. The other is a record — plain, structured, and meant for a machine.

FileForContains
.zitate.txtreading, copyingAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX, and the RIS record — in your language and in English
.risCitavi, Zotero, EndNotethe same source as an importable record

Reference managers cannot read prose. That was the flaw in shipping only the text file: it looked complete and was useless to the one tool that would have saved the most work. Both files are optional, both are on by default, and both are tied to the citation switch in the menu — if that is off, only the PDF is written.

A date format that decides whether the import works

The access date sat in the record as an ISO timestamp. Zotero forgives that. Citavi and EndNote do not — the field arrived empty or as text nobody had asked for. RIS prescribes YYYY/MM/DD/ followed by free text, and the time of day belongs in that free part: pages change during a day, and evidence without a time cannot be tied to a version.

Y2  - 2026-08-18T11:00:00+02:00      before
Y2  - 2026/08/18/11:00               now

A pointer inside the PDF, for whoever reads it next

The citation is written into the PDF itself — document properties, an XMP record, the RIS record as an attachment. What was missing was the connection to the file beside it. A PDF now carries the rule rather than the name: same folder, same file name, .pdf replaced by .zitate.txt. A rule, because a name would point nowhere the moment the browser appends " (1)". Anyone holding the path of the PDF — a person or a language model — holds the path of the citation.

Why none of it arrived

The PDF always landed. The file meant to lie beside it did not, and when it finally did, it sat in the wrong folder. The cause was not the logic that requests it. Firefox refuses data: addresses in downloads.download outright:

Firefox ESR 153.0.4, headless, throwaway profile, one purpose-built extension
CaseAddressSubfolderResult
Adata:yesAccess denied
Bdata:noAccess denied
Cblob:yesarrived, correct folder
Dblob: then data:yesonly the first arrived

The PDF is assembled in memory and handed over as a blob; a short text file was built as a string and handed over as data:, because that is shorter to write and looks equivalent. The two differed in the one property nobody compared. Case B rules out the folder — without it the call fails just the same.

Behind that sits a second trap. When the download interface fails, extensions fall back to an anchor with a download attribute. That does put the file on disk — in the root of the download directory, because the attribute takes a file name and every browser discards path components (HTML Living Standard, 4.6.6). The visible sign is a companion file next to the download folder instead of inside it.

The widely repeated rule of thumb says the opposite: that Firefox rejects blob: and accepts data:, citing Bugzilla 1287347 and 1696174. In Firefox 153 the reverse holds. A comment in our own source repeated that rule and sent the search the wrong way for a long time. The address is now chosen at runtime — blob: where it exists, data: in a Manifest V3 service worker, where URL.createObjectURL does not.

Where the versions stand

Both branches are at 2.38.0 in source. The Firefox store currently serves 2.37.0, the Chrome store 2.33.4 — this site does not claim when that changes. What is always current is the machine-readable answer at /.well-known/extension-versions.json: both store versions, the source state and the declared permissions at one address. The MCP endpoint reports its own version in the server card; recommend_settings answers by purpose and names the measurement behind each value, or says plainly that none exists.

Method: a purpose-built extension requests four downloads and logs, per case, the outcome, the path returned by downloads.search() and the error text. Verified against the directory tree after the run, not against the return value of the call. Firefox ESR 153.0.4 on Windows 11, headless, driven over Marionette, temporary install. One browser, one version — the mechanism is stable, the version boundary is not measured here. The citation styles are generated from the page's own details; where a page supplies nothing, the entry says so rather than guessing. Nothing here is legal advice.

← Proving Lab · Disclaimer

Alles, was eine Zitation braucht, neben dem PDF

Eine Bildschirmaufnahme wird erst zum Beleg, wenn die Angaben mitkommen. Sechs Zitierweisen in neun Sprachen, ein Satz, den Literaturprogramme wirklich lesen können, und ein Wegweiser im PDF, damit ein Sprachmodell den Rest findet. Dazu die Messung, die erklärt, warum davon lange nichts ankam.

Gemessen am 2026-08-18 · Rohdaten

Zwei Dateien, zwei Aufgaben

Sie sind nicht zwei Abschriften derselben Sache. Die Textdatei ist zum Lesen und Abschreiben gemacht: eine Zeile je Zitierweise, fertig fürs Literaturverzeichnis. Die andere ist ein Datensatz — schmucklos, strukturiert, für eine Maschine gedacht.

DateiWofürEnthält
.zitate.txtLesen, KopierenAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX und den RIS-Satz — in Ihrer Sprache und auf Englisch
.risCitavi, Zotero, EndNotedieselbe Quelle als einlesbarer Datensatz

Literaturprogramme lesen keinen Fließtext. Das war der Fehler daran, nur die Textdatei mitzugeben: Sie sah vollständig aus und war für genau das Werkzeug nutzlos, das die meiste Arbeit abgenommen hätte. Beide Dateien sind abwählbar, beide ab Werk an, und beide hängen am Zitationsschalter im Menü — ist der aus, wird nur das PDF geschrieben.

Ein Datumsformat, an dem der Import hängt

Das Abrufdatum stand im Datensatz als ISO-Zeitstempel. Zotero verzeiht das. Citavi und EndNote nicht — das Feld kam leer an oder als Text, nach dem niemand gefragt hatte. RIS schreibt JJJJ/MM/TT/ vor, gefolgt von Freitext, und die Uhrzeit gehört in diesen freien Teil: Seiten ändern sich im Lauf eines Tages, und ein Beleg ohne Uhrzeit lässt sich keiner Fassung zuordnen.

Y2  - 2026-08-18T11:00:00+02:00      vorher
Y2  - 2026/08/18/11:00               jetzt

Ein Wegweiser im PDF, für den, der es als Nächstes liest

Die Zitation steht im PDF selbst — in den Dokumenteigenschaften, als XMP-Datensatz, der RIS-Satz als Anlage. Was fehlte, war die Verbindung zur Datei daneben. Ein PDF trägt jetzt die Regel statt des Namens: derselbe Ordner, derselbe Dateiname, .pdf ersetzt durch .zitate.txt. Eine Regel, weil ein fester Name in dem Moment ins Leere zeigt, in dem der Browser „ (1)“ anhängt. Wer den Pfad des PDF hat — ein Mensch oder ein Sprachmodell —, hat damit den Pfad der Zitation.

Warum nichts davon ankam

Das PDF kam immer an. Die Datei, die daneben liegen sollte, nicht — und als sie es endlich tat, lag sie im falschen Ordner. Die Ursache war nicht die Logik, die sie anfordert. Firefox verweigert data:-Adressen in downloads.download rundheraus:

Firefox ESR 153.0.4, headless, Wegwerf-Profil, eine eigens gebaute Erweiterung
FallAdresseUnterordnerErgebnis
Adata:jaAccess denied
Bdata:neinAccess denied
Cblob:jaangekommen, richtiger Ordner
Dblob:, dann data:janur die erste kam an

Das PDF entsteht im Speicher und wird als Blob übergeben; eine kurze Textdatei wurde als Zeichenkette gebaut und als data: übergeben, weil das kürzer zu schreiben ist und gleichwertig aussieht. Die beiden unterschieden sich in genau der Eigenschaft, die niemand verglichen hat. Fall B schließt den Ordner aus — ohne ihn scheitert der Aufruf genauso.

Dahinter steckt eine zweite Falle. Scheitert die Download-Schnittstelle, weichen Erweiterungen auf einen Anker mit download-Attribut aus. Der legt die Datei tatsächlich ab — im Wurzelverzeichnis der Ablage, denn das Attribut nimmt einen Dateinamen, und Pfadanteile verwerfen alle Browser (HTML Living Standard, 4.6.6). Das sichtbare Zeichen ist eine Beilage neben dem Download-Ordner statt darin.

Die vielfach wiederholte Merkregel sagt das Gegenteil: Firefox lehne blob: ab und akzeptiere data:, unter Verweis auf Bugzilla 1287347 und 1696174. In Firefox 153 gilt das Umgekehrte. Ein Kommentar im eigenen Quelltext hat diese Regel wiederholt und die Suche lange in die falsche Richtung geschickt. Die Adresse wird jetzt zur Laufzeit gewählt — blob:, wo es das gibt, data: im Service Worker von Manifest V3, wo URL.createObjectURL fehlt.

Wo die Fassungen stehen

Beide Zweige stehen im Quellstand bei 2.38.0. Der Firefox-Store liefert derzeit 2.37.0 aus, der Chrome-Store 2.33.4 — wann sich das ändert, behauptet diese Seite nicht. Immer aktuell ist die maschinenlesbare Auskunft unter /.well-known/extension-versions.json: beide Store-Stände, der Quellstand und die deklarierten Berechtigungen an einer Adresse. Der MCP-Endpunkt nennt seine eigene Fassung in der Serverkarte; recommend_settings antwortet nach Zweck und nennt zu jedem Wert die Messung dahinter — oder sagt ausdrücklich, dass es keine gibt.

Methode: Eine eigens gebaute Erweiterung fordert vier Downloads an und protokolliert je Fall Ergebnis, den von downloads.search() gemeldeten Pfad und den Fehlertext. Geprüft wurde gegen den Verzeichnisbaum nach dem Lauf, nicht gegen den Rückgabewert des Aufrufs. Firefox ESR 153.0.4 unter Windows 11, headless, über Marionette gesteuert, temporär installiert. Ein Browser, eine Fassung — der Mechanismus ist stabil, die Versionsgrenze ist hier nicht gemessen. Die Zitierweisen entstehen aus den Angaben der Seite selbst; gibt eine Seite nichts her, sagt der Eintrag das, statt zu raten. Nichts hiervon ist Rechtsberatung.

← Proving Lab · Disclaimer

Todo lo que una cita necesita, junto al PDF

Una captura de pantalla solo se convierte en prueba cuando los datos viajan con ella. Seis estilos de cita en nueve idiomas, un registro que los gestores bibliográficos sí pueden leer, y una indicación dentro del PDF para que un modelo de lenguaje encuentre el resto. Y la medición que explica por qué durante mucho tiempo no llegaba nada de eso.

Medido el 2026-08-18 · datos brutos

Dos archivos, dos tareas

No son dos copias de lo mismo. El archivo de texto está hecho para leerse y copiarse: una línea por estilo, lista para la bibliografía. El otro es un registro: sobrio, estructurado, pensado para una máquina.

ArchivoParaContiene
.zitate.txtleer, copiarAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX y el registro RIS — en su idioma y en inglés
.risCitavi, Zotero, EndNotela misma fuente como registro importable

Los gestores bibliográficos no leen prosa. Ese era el defecto de entregar solo el archivo de texto: parecía completo y resultaba inútil justo para la herramienta que más trabajo habría ahorrado. Ambos archivos son opcionales, ambos vienen activados y ambos dependen del interruptor de citas del menú: si está desactivado, solo se escribe el PDF.

Un formato de fecha del que depende la importación

La fecha de consulta figuraba en el registro como marca de tiempo ISO. Zotero lo perdona. Citavi y EndNote no: el campo llegaba vacío o como texto que nadie había pedido. RIS prescribe AAAA/MM/DD/ seguido de texto libre, y la hora pertenece a esa parte libre: las páginas cambian a lo largo del día, y una prueba sin hora no puede asociarse a una versión.

Y2  - 2026-08-18T11:00:00+02:00      antes
Y2  - 2026/08/18/11:00               ahora

Una indicación dentro del PDF, para quien lo lea después

La cita se escribe en el propio PDF: propiedades del documento, registro XMP, el registro RIS como adjunto. Faltaba el vínculo con el archivo de al lado. Un PDF lleva ahora la regla en vez del nombre: misma carpeta, mismo nombre de archivo, .pdf sustituido por .zitate.txt. Una regla, porque un nombre fijo apuntaría al vacío en cuanto el navegador añadiera « (1)». Quien tiene la ruta del PDF —una persona o un modelo de lenguaje— tiene con ella la ruta de la cita.

Por qué no llegaba nada de eso

El PDF llegaba siempre. El archivo que debía quedar a su lado, no — y cuando por fin lo hizo, apareció en la carpeta equivocada. La causa no era la lógica que lo solicita. Firefox rechaza de plano las direcciones data: en downloads.download:

Firefox ESR 153.0.4, headless, perfil desechable, una extensión hecha para esta prueba
CasoDirecciónSubcarpetaResultado
Adata:Access denied
Bdata:noAccess denied
Cblob:llegó, carpeta correcta
Dblob: y luego data:solo llegó el primero

El PDF se compone en memoria y se entrega como blob; un archivo de texto corto se construía como cadena y se entregaba como data:, porque es más breve de escribir y parece equivalente. Los dos se diferenciaban justo en la propiedad que nadie comparó. El caso B descarta la subcarpeta: sin ella la llamada falla igual.

Detrás hay una segunda trampa. Cuando la interfaz de descargas falla, las extensiones recurren a un enlace con el atributo download. Eso sí guarda el archivo, pero en la raíz del directorio de descargas, porque el atributo admite un nombre de archivo y todos los navegadores descartan los componentes de ruta (HTML Living Standard, 4.6.6). La señal visible es un archivo acompañante junto a la carpeta de descargas en lugar de dentro.

La regla que se repite dice lo contrario: que Firefox rechaza blob: y acepta data:, citando Bugzilla 1287347 y 1696174. En Firefox 153 rige lo inverso. Un comentario en nuestro propio código repetía esa regla y desvió la búsqueda mucho tiempo. Ahora la dirección se elige en tiempo de ejecución: blob: donde existe, data: en un service worker de Manifest V3, donde no hay URL.createObjectURL.

En qué versiones estamos

Ambas ramas están en 2.38.0 en el código fuente. La tienda de Firefox sirve actualmente 2.37.0 y la de Chrome 2.33.4; este sitio no afirma cuándo cambiará. Siempre al día está la respuesta legible por máquina en /.well-known/extension-versions.json: ambas versiones de tienda, el estado del código y los permisos declarados en una sola dirección. El extremo MCP indica su propia versión en la tarjeta de servidor; recommend_settings responde por finalidad y nombra la medición detrás de cada valor, o dice con claridad que no existe.

Método: una extensión hecha para esta prueba solicita cuatro descargas y registra, por caso, el resultado, la ruta devuelta por downloads.search() y el texto del error. Se verificó contra el árbol de directorios tras la ejecución, no contra el valor devuelto por la llamada. Firefox ESR 153.0.4 en Windows 11, headless, controlado por Marionette, instalación temporal. Un navegador, una versión: el mecanismo es estable, el límite de versión no se mide aquí. Los estilos de cita se generan a partir de los datos de la propia página; si una página no aporta nada, la entrada lo dice en vez de adivinar. Nada de esto es asesoramiento jurídico.

← Proving Lab · Disclaimer

Tout ce qu’une citation demande, à côté du PDF

Une capture d’écran ne devient une preuve que si les indications l’accompagnent. Six styles de citation en neuf langues, un enregistrement que les logiciels de bibliographie savent vraiment lire, et un renvoi dans le PDF pour qu’un modèle de langue trouve le reste. Avec la mesure qui explique pourquoi rien de tout cela n’arrivait pendant longtemps.

Mesuré le 2026-08-18 · données brutes

Deux fichiers, deux tâches

Ce ne sont pas deux copies de la même chose. Le fichier texte est fait pour être lu et recopié : une ligne par style, prête pour la bibliographie. L’autre est un enregistrement — sobre, structuré, destiné à une machine.

FichierPourContient
.zitate.txtlire, copierAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX et l’enregistrement RIS — dans votre langue et en anglais
.risCitavi, Zotero, EndNotela même source sous forme d’enregistrement importable

Les logiciels de bibliographie ne lisent pas de prose. C’était le défaut de ne livrer que le fichier texte : il paraissait complet et restait inutile précisément pour l’outil qui aurait épargné le plus de travail. Les deux fichiers sont facultatifs, tous deux activés d’origine, et tous deux dépendent de l’interrupteur des citations dans le menu : s’il est éteint, seul le PDF est écrit.

Un format de date dont dépend l’import

La date de consultation figurait dans l’enregistrement sous forme d’horodatage ISO. Zotero le pardonne. Citavi et EndNote non : le champ arrivait vide ou sous forme de texte que personne n’avait demandé. RIS impose AAAA/MM/JJ/ suivi de texte libre, et l’heure appartient à cette partie libre : les pages changent au cours d’une journée, et une preuve sans heure ne peut être rattachée à une version.

Y2  - 2026-08-18T11:00:00+02:00      avant
Y2  - 2026/08/18/11:00               maintenant

Un renvoi dans le PDF, pour qui le lira ensuite

La citation est inscrite dans le PDF lui-même : propriétés du document, enregistrement XMP, l’enregistrement RIS en pièce jointe. Ce qui manquait, c’était le lien vers le fichier voisin. Un PDF porte désormais la règle plutôt que le nom : même dossier, même nom de fichier, .pdf remplacé par .zitate.txt. Une règle, car un nom fixe renverrait dans le vide dès que le navigateur ajoute « (1) ». Qui détient le chemin du PDF — une personne ou un modèle de langue — détient celui de la citation.

Pourquoi rien de cela n’arrivait

Le PDF arrivait toujours. Le fichier qui devait se trouver à côté, non — et lorsqu’il est enfin arrivé, il était dans le mauvais dossier. La cause n’était pas la logique qui le demande. Firefox refuse catégoriquement les adresses data: dans downloads.download :

Firefox ESR 153.0.4, sans fenêtre, profil jetable, une extension construite pour l’essai
CasAdresseSous-dossierRésultat
Adata:ouiAccess denied
Bdata:nonAccess denied
Cblob:ouiarrivé, bon dossier
Dblob: puis data:ouiseul le premier est arrivé

Le PDF est assemblé en mémoire et remis sous forme de blob ; un court fichier texte était construit comme chaîne et remis en data:, parce que c’est plus court à écrire et que cela paraît équivalent. Les deux différaient précisément par la propriété que personne n’avait comparée. Le cas B écarte le sous-dossier : sans lui, l’appel échoue tout autant.

Derrière se cache un second piège. Quand l’interface de téléchargement échoue, les extensions se rabattent sur un lien portant l’attribut download. Le fichier est bien enregistré, mais à la racine du dossier de téléchargement, car l’attribut prend un nom de fichier et tous les navigateurs écartent les composants de chemin (HTML Living Standard, 4.6.6). Le signe visible : un fichier joint posé à côté du dossier au lieu d’être dedans.

La règle souvent répétée dit l’inverse : Firefox refuserait blob: et accepterait data:, en citant Bugzilla 1287347 et 1696174. Dans Firefox 153, c’est le contraire qui vaut. Un commentaire dans notre propre code reprenait cette règle et a longtemps orienté la recherche du mauvais côté. L’adresse est désormais choisie à l’exécution : blob: là où elle existe, data: dans un service worker de Manifest V3, où URL.createObjectURL manque.

Où en sont les versions

Les deux branches sont en 2.38.0 dans les sources. La boutique Firefox sert actuellement 2.37.0, celle de Chrome 2.33.4 — ce site n’avance rien sur le moment où cela changera. Ce qui est toujours à jour, c’est la réponse lisible par machine à /.well-known/extension-versions.json : les deux versions en boutique, l’état des sources et les permissions déclarées à une seule adresse. Le point d’accès MCP indique sa propre version dans la carte de serveur ; recommend_settings répond par usage et nomme la mesure derrière chaque valeur, ou dit clairement qu’il n’y en a pas.

Méthode : une extension construite pour l’essai demande quatre téléchargements et consigne, pour chaque cas, le résultat, le chemin renvoyé par downloads.search() et le texte de l’erreur. Vérification contre l’arborescence après l’exécution, non contre la valeur retournée par l’appel. Firefox ESR 153.0.4 sous Windows 11, sans fenêtre, piloté par Marionette, installation temporaire. Un navigateur, une version : le mécanisme est stable, la limite de version n’est pas mesurée ici. Les styles de citation sont produits à partir des indications de la page elle-même ; si une page n’en donne aucune, l’entrée le dit au lieu de deviner. Rien de ceci ne constitue un conseil juridique.

← Proving Lab · Disclaimer

Tutto ciò che serve a una citazione, accanto al PDF

Una schermata diventa prova solo se i dati la accompagnano. Sei stili di citazione in nove lingue, un record che i gestori bibliografici sanno davvero leggere e un rimando dentro al PDF perché un modello linguistico trovi il resto. Più la misurazione che spiega perché a lungo non arrivava niente di tutto questo.

Misurato il 2026-08-18 · dati grezzi

Due file, due compiti

Non sono due copie della stessa cosa. Il file di testo è fatto per essere letto e copiato: una riga per stile, pronta per la bibliografia. L’altro è un record — essenziale, strutturato, pensato per una macchina.

FilePerContiene
.zitate.txtleggere, copiareAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX e il record RIS — nella sua lingua e in inglese
.risCitavi, Zotero, EndNotela stessa fonte come record importabile

I gestori bibliografici non leggono prosa. Era questo il difetto del consegnare solo il file di testo: sembrava completo ed era inutile proprio per lo strumento che avrebbe fatto risparmiare più lavoro. Entrambi i file sono disattivabili, entrambi attivi di fabbrica ed entrambi legati all’interruttore delle citazioni nel menu: se è spento, viene scritto solo il PDF.

Un formato di data da cui dipende l’importazione

La data di consultazione stava nel record come marca temporale ISO. Zotero lo perdona. Citavi ed EndNote no: il campo arrivava vuoto o come testo che nessuno aveva chiesto. RIS prescrive AAAA/MM/GG/ seguito da testo libero, e l’ora appartiene a quella parte libera: le pagine cambiano nel corso di una giornata, e una prova senza ora non si può ricondurre a una versione.

Y2  - 2026-08-18T11:00:00+02:00      prima
Y2  - 2026/08/18/11:00               ora

Un rimando dentro al PDF, per chi lo leggerà dopo

La citazione è scritta nel PDF stesso: proprietà del documento, record XMP, il record RIS come allegato. Mancava il collegamento al file accanto. Un PDF porta ora la regola anziché il nome: stessa cartella, stesso nome di file, .pdf sostituito da .zitate.txt. Una regola, perché un nome fisso punterebbe nel vuoto non appena il browser aggiunge « (1)». Chi ha il percorso del PDF — una persona o un modello linguistico — ha con esso il percorso della citazione.

Perché non arrivava nulla

Il PDF arrivava sempre. Il file che doveva stargli accanto no — e quando finalmente è arrivato, stava nella cartella sbagliata. La causa non era la logica che lo richiede. Firefox rifiuta senz’altro gli indirizzi data: in downloads.download:

Firefox ESR 153.0.4, headless, profilo usa e getta, un’estensione creata per la prova
CasoIndirizzoSottocartellaEsito
Adata:Access denied
Bdata:noAccess denied
Cblob:arrivato, cartella giusta
Dblob: poi data:è arrivato solo il primo

Il PDF si compone in memoria e viene consegnato come blob; un breve file di testo veniva costruito come stringa e consegnato come data:, perché è più corto da scrivere e sembra equivalente. I due differivano proprio nella proprietà che nessuno aveva confrontato. Il caso B esclude la sottocartella: senza di essa la chiamata fallisce ugualmente.

Dietro c’è una seconda trappola. Quando l’interfaccia dei download fallisce, le estensioni ripiegano su un collegamento con l’attributo download. Il file viene salvato davvero, ma nella radice della cartella dei download, perché l’attributo prende un nome di file e tutti i browser scartano le parti di percorso (HTML Living Standard, 4.6.6). Il segno visibile è un allegato accanto alla cartella dei download invece che dentro.

La regola che si ripete dice il contrario: che Firefox rifiuti blob: e accetti data:, citando Bugzilla 1287347 e 1696174. In Firefox 153 vale l’inverso. Un commento nel nostro stesso codice ripeteva quella regola e ha a lungo indirizzato male la ricerca. L’indirizzo ora si sceglie in esecuzione: blob: dove esiste, data: in un service worker di Manifest V3, dove URL.createObjectURL non c’è.

A che punto sono le versioni

Entrambi i rami sono a 2.38.0 nel codice. Lo store Firefox distribuisce attualmente la 2.37.0, quello Chrome la 2.33.4 — questo sito non afferma quando cambierà. Sempre aggiornata è la risposta leggibile da una macchina su /.well-known/extension-versions.json: entrambe le versioni negli store, lo stato del codice e i permessi dichiarati a un solo indirizzo. L’endpoint MCP indica la propria versione nella scheda server; recommend_settings risponde per scopo e nomina la misurazione dietro ogni valore, oppure dice chiaramente che non ce n’è.

Metodo: un’estensione creata per la prova richiede quattro download e registra, per ogni caso, l’esito, il percorso restituito da downloads.search() e il testo dell’errore. Verificato contro l’albero delle cartelle dopo l’esecuzione, non contro il valore restituito dalla chiamata. Firefox ESR 153.0.4 su Windows 11, headless, pilotato via Marionette, installazione temporanea. Un browser, una versione: il meccanismo è stabile, il confine di versione qui non è misurato. Gli stili di citazione nascono dai dati della pagina stessa; se una pagina non ne fornisce, la voce lo dice invece di indovinare. Nulla di quanto qui riportato è consulenza legale.

← Proving Lab · Disclaimer

引用に必要なものは、すべて PDF の隣に

画面の取り込みは、出典が一緒に付いてきて初めて証拠になります。9 言語・6 種類の引用形式、文献管理ソフトが実際に読み込めるレコード、そして言語モデルが残りを見つけられるよう PDF 内に置いた手がかり。あわせて、なぜ長らくそれらが届かなかったのかを説明する測定も。

測定日 2026-08-18 · 生データ

二つのファイル、二つの役割

同じものの写しが二つあるわけではありません。テキストファイルは読んで書き写すためのもので、形式ごとに 1 行、そのまま文献表に使えます。もう一方はレコードです。飾りがなく、構造化され、機械のために作られています。

ファイル用途内容
.zitate.txt読む・コピーするAPA 7・MLA 9・Chicago・Harvard・DIN 1505-2・ISO 690・BibTeX と RIS レコード — お使いの言語と英語で
.risCitavi・Zotero・EndNote同じ出典を取り込み可能なレコードとして

文献管理ソフトは文章を読みません。テキストファイルだけを添えることの欠点はここにありました。見た目は完全なのに、最も手間を省いてくれるはずの道具にとっては役に立たなかったのです。どちらのファイルも個別に外せますが、初期状態では両方とも有効で、いずれもメニューの引用スイッチに従います。それを切れば、書き出されるのは PDF だけです。

取り込みの成否を分ける日付の書式

取得日時はレコードに ISO のタイムスタンプとして入っていました。Zotero はこれを大目に見ます。Citavi と EndNote は見ません。項目が空で届くか、誰も求めていないテキストとして届きました。RIS は YYYY/MM/DD/ のあとに自由記述という形式を定めており、時刻はその自由部分に属します。ページは一日のうちに変わりますし、時刻のない証拠はどの版のものか結び付けられません。

Y2  - 2026-08-18T11:00:00+02:00      以前
Y2  - 2026/08/18/11:00               現在

次に読む者のための、PDF 内の手がかり

引用情報は PDF 自体に書き込まれています。文書プロパティ、XMP レコード、添付としての RIS レコード。欠けていたのは、隣のファイルとのつながりでした。PDF はいま、名前ではなく規則を持ちます。同じフォルダー、同じファイル名、.pdf.zitate.txt に置き換える、という規則です。規則にしたのは、ブラウザーが「 (1)」を付けた瞬間に、固定した名前では行き先が消えてしまうからです。PDF のパスを持つ者は — 人であれ言語モデルであれ — それだけで引用情報のパスも持っていることになります。

なぜ何も届かなかったのか

PDF はいつも届いていました。その隣に置かれるはずのファイルは届かず、ようやく届いたときには別のフォルダーにありました。原因は、それを要求する側の処理ではありません。Firefox は downloads.download で data: のアドレスをはっきりと拒みます。

Firefox ESR 153.0.4、画面なし、使い捨てプロファイル、検証用に作った拡張機能
事例アドレスサブフォルダー結果
Adata:ありAccess denied
Bdata:なしAccess denied
Cblob:あり届いた・フォルダーも正しい
Dblob: のあと data:あり最初の一つだけ届いた

PDF はメモリ上で組み立てられ blob として渡されます。短いテキストファイルは文字列として作られ data: として渡されていました。そのほうが短く書けて、同等に見えたからです。二つは、誰も比べなかったまさにその性質で違っていました。事例 B はサブフォルダーを容疑から外します。なくても同じように失敗するからです。

その背後にもう一つの落とし穴があります。ダウンロードの窓口が失敗すると、拡張機能は download 属性を持つリンクに切り替えます。ファイルは確かに保存されますが、保存先の直下です。属性が受け取るのはファイル名であり、パスの部分はどのブラウザーも捨てるためです(HTML Living Standard, 4.6.6)。目に見える手がかりは、付随ファイルがダウンロードフォルダーの中ではなく隣に置かれることです。

広く言われている経験則は逆を述べています。Firefox は blob: を拒み data: を受け入れる、根拠は Bugzilla 1287347 と 1696174 だ、と。Firefox 153 では逆が成り立ちます。自分たちのソースコード中のコメントもその経験則を繰り返しており、長いあいだ探索を誤った方向へ導いていました。アドレスはいま実行時に選ばれます。使えるところでは blob:、URL.createObjectURL のない Manifest V3 の service worker では data: です。

各版の現在地

ソースの状態は両系統とも 2.38.0 です。Firefox ストアは現在 2.37.0、Chrome ストアは 2.33.4 を配布しています。いつ変わるかを、このサイトは主張しません。つねに最新なのは /.well-known/extension-versions.json の機械可読な回答です。両ストアの版、ソースの状態、宣言している権限が一つのアドレスにまとまっています。MCP エンドポイントは自身の版をサーバーカードに示します。recommend_settings は用途ごとに答え、各値の背後にある測定を挙げるか、測定がないことをはっきり述べます。

方法: 検証用に作った拡張機能が四つのダウンロードを要求し、事例ごとに結果、downloads.search() が返した実際のパス、エラーの文言を記録します。検証は実行後のディレクトリ構造に対して行い、呼び出しの戻り値では判定していません。Windows 11 上の Firefox ESR 153.0.4、画面なし、Marionette 経由、一時的なインストール。ブラウザー一つ、版一つ — 仕組みは安定していますが、どの版から変わるかはここでは測っていません。引用形式はページ自身の記載から作られ、ページが何も示さない場合は推測せずその旨を書きます。本稿は法的助言ではありません。

← Proving Lab · Disclaimer

Tudo o que uma citação precisa, ao lado do PDF

Uma captura de tela só vira prova quando os dados vão junto. Seis estilos de citação em nove idiomas, um registro que os gerenciadores bibliográficos realmente conseguem ler e uma indicação dentro do PDF para que um modelo de linguagem encontre o resto. Além da medição que explica por que, durante muito tempo, nada disso chegava.

Medido em 2026-08-18 · dados brutos

Dois arquivos, duas tarefas

Não são duas cópias da mesma coisa. O arquivo de texto foi feito para ser lido e copiado: uma linha por estilo, pronta para a bibliografia. O outro é um registro — sóbrio, estruturado, pensado para uma máquina.

ArquivoParaContém
.zitate.txtler, copiarAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX e o registro RIS — no seu idioma e em inglês
.risCitavi, Zotero, EndNotea mesma fonte como registro importável

Gerenciadores bibliográficos não leem prosa. Esse era o defeito de entregar apenas o arquivo de texto: parecia completo e era inútil justamente para a ferramenta que teria poupado mais trabalho. Ambos os arquivos são opcionais, ambos vêm ativados e ambos dependem do interruptor de citações no menu: se ele estiver desligado, só o PDF é gravado.

Um formato de data do qual depende a importação

A data de acesso constava no registro como marca de tempo ISO. O Zotero perdoa isso. O Citavi e o EndNote não: o campo chegava vazio ou como texto que ninguém pediu. O RIS exige AAAA/MM/DD/ seguido de texto livre, e a hora pertence a essa parte livre: páginas mudam ao longo do dia, e uma prova sem hora não pode ser atribuída a uma versão.

Y2  - 2026-08-18T11:00:00+02:00      antes
Y2  - 2026/08/18/11:00               agora

Uma indicação dentro do PDF, para quem o ler em seguida

A citação é gravada no próprio PDF: propriedades do documento, registro XMP, o registro RIS como anexo. Faltava a ligação com o arquivo ao lado. Um PDF agora carrega a regra em vez do nome: mesma pasta, mesmo nome de arquivo, .pdf substituído por .zitate.txt. Uma regra, porque um nome fixo apontaria para o vazio assim que o navegador acrescentasse “ (1)”. Quem tem o caminho do PDF — uma pessoa ou um modelo de linguagem — tem com ele o caminho da citação.

Por que nada disso chegava

O PDF sempre chegava. O arquivo que deveria ficar ao lado, não — e quando enfim chegou, estava na pasta errada. A causa não era a lógica que o solicita. O Firefox recusa categoricamente endereços data: em downloads.download:

Firefox ESR 153.0.4, headless, perfil descartável, uma extensão feita para o teste
CasoEndereçoSubpastaResultado
Adata:simAccess denied
Bdata:nãoAccess denied
Cblob:simchegou, pasta correta
Dblob: e depois data:simsó o primeiro chegou

O PDF é montado na memória e entregue como blob; um arquivo de texto curto era construído como cadeia e entregue como data:, porque é mais curto de escrever e parece equivalente. Os dois diferiam exatamente na propriedade que ninguém comparou. O caso B descarta a subpasta: sem ela a chamada falha do mesmo jeito.

Atrás disso há uma segunda armadilha. Quando a interface de downloads falha, as extensões recorrem a um link com o atributo download. O arquivo é de fato salvo, mas na raiz da pasta de downloads, porque o atributo aceita um nome de arquivo e todos os navegadores descartam os componentes de caminho (HTML Living Standard, 4.6.6). O sinal visível é um arquivo acompanhante ao lado da pasta de downloads em vez de dentro dela.

A regra prática repetida por toda parte diz o contrário: que o Firefox rejeita blob: e aceita data:, citando Bugzilla 1287347 e 1696174. No Firefox 153 vale o inverso. Um comentário no nosso próprio código repetia essa regra e, por muito tempo, mandou a busca para o lado errado. O endereço agora é escolhido em tempo de execução: blob: onde existe, data: em um service worker do Manifest V3, onde não há URL.createObjectURL.

Em que ponto estão as versões

Ambos os ramos estão em 2.38.0 no código-fonte. A loja do Firefox entrega atualmente a 2.37.0 e a do Chrome a 2.33.4 — este site não afirma quando isso muda. Sempre atual é a resposta legível por máquina em /.well-known/extension-versions.json: as duas versões nas lojas, o estado do código e as permissões declaradas em um só endereço. O endpoint MCP informa a própria versão no cartão do servidor; recommend_settings responde por finalidade e nomeia a medição por trás de cada valor, ou diz claramente que não existe nenhuma.

Método: uma extensão feita para o teste solicita quatro downloads e registra, por caso, o resultado, o caminho devolvido por downloads.search() e o texto do erro. Verificado contra a árvore de diretórios após a execução, não contra o valor devolvido pela chamada. Firefox ESR 153.0.4 no Windows 11, headless, controlado por Marionette, instalação temporária. Um navegador, uma versão: o mecanismo é estável, o limite de versão não é medido aqui. Os estilos de citação são gerados a partir dos dados da própria página; se uma página não fornece nada, a entrada diz isso em vez de adivinhar. Nada aqui é aconselhamento jurídico.

← Proving Lab · Disclaimer

Всё, что нужно ссылке, — рядом с PDF

Снимок экрана становится подтверждением только тогда, когда сведения идут вместе с ним. Шесть стилей оформления на девяти языках, запись, которую менеджеры литературы действительно читают, и указание внутри PDF, чтобы языковая модель нашла остальное. И измерение, объясняющее, почему долгое время ничего из этого не доходило.

Измерено 2026-08-18 · исходные данные

Два файла, две задачи

Это не две копии одного и того же. Текстовый файл сделан для чтения и переписывания: по строке на каждый стиль, готовой для списка литературы. Второй — запись: сухая, структурированная, предназначенная для машины.

ФайлДля чегоСодержит
.zitate.txtчитать, копироватьAPA 7, MLA 9, Chicago, Harvard, DIN 1505-2, ISO 690, BibTeX и запись RIS — на вашем языке и на английском
.risCitavi, Zotero, EndNoteтот же источник в виде импортируемой записи

Менеджеры литературы не читают связный текст. В этом и была ошибка: отдавать только текстовый файл. Он выглядел полным и оказывался бесполезен именно для того инструмента, который сэкономил бы больше всего труда. Оба файла отключаемы, оба включены по умолчанию и оба зависят от переключателя ссылок в меню: если он выключен, записывается только PDF.

Формат даты, от которого зависит импорт

Дата обращения стояла в записи как отметка времени ISO. Zotero это прощает. Citavi и EndNote — нет: поле приходило пустым или как текст, которого никто не просил. RIS предписывает ГГГГ/ММ/ДД/ и далее свободный текст, и время суток относится именно к этой свободной части: страницы меняются в течение дня, а подтверждение без времени невозможно отнести к какой-либо редакции.

Y2  - 2026-08-18T11:00:00+02:00      было
Y2  - 2026/08/18/11:00               стало

Указание внутри PDF — для того, кто прочтёт его следующим

Библиографические данные записаны в сам PDF: свойства документа, запись XMP, запись RIS во вложении. Не хватало связи с файлом рядом. Теперь PDF несёт правило, а не имя: та же папка, то же имя файла, .pdf заменено на .zitate.txt. Именно правило, потому что жёстко записанное имя укажет в пустоту, как только браузер добавит « (1)». У того, у кого есть путь к PDF, — человека или языковой модели — тем самым есть и путь к библиографической записи.

Почему ничего из этого не доходило

PDF доходил всегда. Файл, который должен был лежать рядом, — нет, а когда наконец дошёл, оказался не в той папке. Причина была не в той логике, которая его запрашивает. Firefox прямо отказывает адресам data: в downloads.download:

Firefox ESR 153.0.4, без окна, одноразовый профиль, расширение, собранное для проверки
СлучайАдресПодпапкаРезультат
Adata:даAccess denied
Bdata:нетAccess denied
Cblob:дадошёл, папка верная
Dblob:, затем data:дадошёл только первый

PDF собирается в памяти и передаётся как blob; короткий текстовый файл строился как строка и передавался как data:, потому что так короче писать и выглядит равноценно. Эти два файла различались ровно тем свойством, которое никто не сравнил. Случай B исключает подпапку: без неё вызов срывается точно так же.

За этим стоит вторая ловушка. Когда интерфейс загрузок отказывает, расширения переходят к ссылке с атрибутом download. Файл действительно сохраняется — но в корне папки загрузок, поскольку атрибут принимает имя файла, а части пути отбрасывают все браузеры (HTML Living Standard, 4.6.6). Видимый признак — приложенный файл рядом с папкой загрузок, а не внутри неё.

Расхожее правило утверждает обратное: будто Firefox отвергает blob: и принимает data:, со ссылкой на Bugzilla 1287347 и 1696174. В Firefox 153 верно противоположное. Комментарий в нашем собственном исходном коде повторял это правило и надолго увёл поиск не в ту сторону. Теперь адрес выбирается во время выполнения: blob: там, где он есть, data: — в service worker Manifest V3, где URL.createObjectURL отсутствует.

На каких версиях всё стоит

Обе ветви в исходном коде находятся на 2.38.0. Магазин Firefox сейчас выдаёт 2.37.0, магазин Chrome — 2.33.4; этот сайт не утверждает, когда это изменится. Всегда актуален машиночитаемый ответ по адресу /.well-known/extension-versions.json: обе магазинные версии, состояние исходного кода и заявленные разрешения по одному адресу. Конечная точка MCP указывает свою версию в карточке сервера; recommend_settings отвечает по назначению и называет измерение за каждым значением — либо прямо говорит, что его нет.

Метод: расширение, собранное для проверки, запрашивает четыре загрузки и записывает по каждому случаю результат, фактический путь из downloads.search() и текст ошибки. Проверка велась по дереву каталогов после прогона, а не по возвращаемому значению вызова. Firefox ESR 153.0.4 в Windows 11, без окна, под управлением Marionette, временная установка. Один браузер, одна версия: механизм устойчив, границы версий здесь не измерялись. Стили оформления строятся из сведений самой страницы; если страница ничего не даёт, запись прямо об этом сообщает вместо того, чтобы угадывать. Ничто из изложенного не является юридической консультацией.

← Proving Lab · Disclaimer

引用所需的一切,就放在 PDF 旁边

屏幕抓取只有在出处一同保存时才成为凭据。九种语言、六种引用格式,一份文献管理软件真正能读的记录,以及写在 PDF 内部的指引,让语言模型找到其余部分。此外还有一项测量,解释了为什么这些东西长期都没有送达。

测量于 2026-08-18 · 原始数据

两个文件,两项任务

它们不是同一件东西的两份副本。文本文件是为阅读和抄录而写的:每种格式一行,可直接用于参考文献表。另一个是记录——朴素、结构化,为机器准备。

文件用途内容
.zitate.txt阅读、复制APA 7、MLA 9、Chicago、Harvard、DIN 1505-2、ISO 690、BibTeX 以及 RIS 记录——以您的语言和英文两种版本
.risCitavi、Zotero、EndNote同一来源,作为可导入的记录

文献管理软件读不了行文。这正是只附带文本文件的缺陷:它看上去很完整,却恰恰对最能省事的那件工具毫无用处。两个文件都可以单独关闭,出厂时都开启,并且都取决于菜单中的引用开关:开关关闭时,只写出 PDF。

决定能否导入的日期格式

访问时间在记录中写成了 ISO 时间戳。Zotero 能容忍这一点,Citavi 和 EndNote 不能——该字段要么为空,要么变成谁也没要的文本。RIS 规定的格式是 YYYY/MM/DD/ 后接自由文本,而时刻属于那段自由部分:页面在一天之内会变化,没有时刻的凭据无法对应到某一版本。

Y2  - 2026-08-18T11:00:00+02:00      此前
Y2  - 2026/08/18/11:00               现在

写在 PDF 内部的指引,留给下一个读它的人

引用信息写在 PDF 本身之中:文档属性、XMP 记录、作为附件的 RIS 记录。缺的是与旁边那个文件的联系。现在 PDF 带的是规则而不是名字:同一文件夹、同一文件名,把 .pdf 换成 .zitate.txt。之所以用规则,是因为浏览器一旦追加“ (1)”,写死的名字就会指向空处。拿到 PDF 路径的人——无论是人还是语言模型——也就拿到了引用文件的路径。

为什么这些都没有送达

PDF 总能送到。本该放在它旁边的文件却没有;等它终于出现时,又落在了错误的文件夹里。原因不在请求它的那段逻辑。Firefox 在 downloads.download 中直接拒绝 data: 地址:

Firefox ESR 153.0.4,无界面,一次性配置文件,为测试专门构建的扩展
情形地址子文件夹结果
Adata:Access denied
Bdata:Access denied
Cblob:已送达,文件夹正确
Dblob:data:只有第一个送达

PDF 在内存中组装并以 blob 交出;一个简短的文本文件却是作为字符串构造、以 data: 交出的,因为那样写起来更短,看上去也等价。这两者的差别,恰恰在于没有人比较过的那一项属性。情形 B 排除了子文件夹:没有它,调用同样失败。

其后还有第二个陷阱。当下载接口失败时,扩展通常改用带 download 属性的链接。文件确实会保存下来——但保存在下载目录的根部,因为该属性接受的是文件名,而所有浏览器都会丢弃路径部分(HTML Living Standard, 4.6.6)。可见的迹象就是:附带文件躺在下载文件夹旁边,而不是里面。

广为流传的经验之谈说法正好相反:称 Firefox 拒绝 blob: 而接受 data:,并引用 Bugzilla 1287347 与 1696174。在 Firefox 153 上,成立的是相反的一面。我们自己源码中的一条注释也重复了这条经验,让排查长期走错了方向。现在地址在运行时选择:有 blob: 的地方用 blob:,在没有 URL.createObjectURL 的 Manifest V3 service worker 中用 data:。

各版本的现状

两个分支的源码状态均为 2.38.0。Firefox 商店目前提供 2.37.0,Chrome 商店提供 2.33.4——本站不断言何时会改变。始终保持最新的是 /.well-known/extension-versions.json 上的机器可读答案:两个商店的版本、源码状态与声明的权限,都在同一个地址。MCP 端点在服务器卡片中标明自身版本;recommend_settings 按用途作答,并为每个取值指出背后的测量,或者明确说明没有测量。