mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 05:28:59 +01:00 
			
		
		
		
	server-ts: Port services/export/single
This commit is contained in:
		
							parent
							
								
									cfeb0cc6f7
								
							
						
					
					
						commit
						1728365fa1
					
				
							
								
								
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -92,6 +92,7 @@
 | 
				
			|||||||
        "@types/better-sqlite3": "^7.6.9",
 | 
					        "@types/better-sqlite3": "^7.6.9",
 | 
				
			||||||
        "@types/escape-html": "^1.0.4",
 | 
					        "@types/escape-html": "^1.0.4",
 | 
				
			||||||
        "@types/express": "^4.17.21",
 | 
					        "@types/express": "^4.17.21",
 | 
				
			||||||
 | 
					        "@types/html": "^1.0.4",
 | 
				
			||||||
        "@types/ini": "^4.1.0",
 | 
					        "@types/ini": "^4.1.0",
 | 
				
			||||||
        "@types/jsdom": "^21.1.6",
 | 
					        "@types/jsdom": "^21.1.6",
 | 
				
			||||||
        "@types/mime-types": "^2.1.4",
 | 
					        "@types/mime-types": "^2.1.4",
 | 
				
			||||||
@ -1484,6 +1485,12 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "node_modules/@types/html": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/html/-/html-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Wb1ymSAftCLxhc3D6vS0Ike/0xg7W6c+DQxAkerU6pD7C8CMzTYwvrwnlcrTfsVO/nMelB9KOKIT7+N5lOeQUg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "node_modules/@types/http-cache-semantics": {
 | 
					    "node_modules/@types/http-cache-semantics": {
 | 
				
			||||||
      "version": "4.0.1",
 | 
					      "version": "4.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
 | 
				
			||||||
@ -16229,6 +16236,12 @@
 | 
				
			|||||||
        "@types/node": "*"
 | 
					        "@types/node": "*"
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    "@types/html": {
 | 
				
			||||||
 | 
					      "version": "1.0.4",
 | 
				
			||||||
 | 
					      "resolved": "https://registry.npmjs.org/@types/html/-/html-1.0.4.tgz",
 | 
				
			||||||
 | 
					      "integrity": "sha512-Wb1ymSAftCLxhc3D6vS0Ike/0xg7W6c+DQxAkerU6pD7C8CMzTYwvrwnlcrTfsVO/nMelB9KOKIT7+N5lOeQUg==",
 | 
				
			||||||
 | 
					      "dev": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
    "@types/http-cache-semantics": {
 | 
					    "@types/http-cache-semantics": {
 | 
				
			||||||
      "version": "4.0.1",
 | 
					      "version": "4.0.1",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
 | 
				
			||||||
 | 
				
			|||||||
@ -115,6 +115,7 @@
 | 
				
			|||||||
    "@types/better-sqlite3": "^7.6.9",
 | 
					    "@types/better-sqlite3": "^7.6.9",
 | 
				
			||||||
    "@types/escape-html": "^1.0.4",
 | 
					    "@types/escape-html": "^1.0.4",
 | 
				
			||||||
    "@types/express": "^4.17.21",
 | 
					    "@types/express": "^4.17.21",
 | 
				
			||||||
 | 
					    "@types/html": "^1.0.4",
 | 
				
			||||||
    "@types/ini": "^4.1.0",
 | 
					    "@types/ini": "^4.1.0",
 | 
				
			||||||
    "@types/jsdom": "^21.1.6",
 | 
					    "@types/jsdom": "^21.1.6",
 | 
				
			||||||
    "@types/mime-types": "^2.1.4",
 | 
					    "@types/mime-types": "^2.1.4",
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
"use strict";
 | 
					"use strict";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const zipExportService = require('../../services/export/zip.js');
 | 
					const zipExportService = require('../../services/export/zip.js');
 | 
				
			||||||
const singleExportService = require('../../services/export/single.js');
 | 
					const singleExportService = require('../../services/export/single');
 | 
				
			||||||
const opmlExportService = require('../../services/export/opml');
 | 
					const opmlExportService = require('../../services/export/opml');
 | 
				
			||||||
const becca = require('../../becca/becca');
 | 
					const becca = require('../../becca/becca');
 | 
				
			||||||
const TaskContext = require('../../services/task_context');
 | 
					const TaskContext = require('../../services/task_context');
 | 
				
			||||||
 | 
				
			|||||||
@ -3,7 +3,7 @@
 | 
				
			|||||||
const enexImportService = require('../../services/import/enex.js');
 | 
					const enexImportService = require('../../services/import/enex.js');
 | 
				
			||||||
const opmlImportService = require('../../services/import/opml');
 | 
					const opmlImportService = require('../../services/import/opml');
 | 
				
			||||||
const zipImportService = require('../../services/import/zip.js');
 | 
					const zipImportService = require('../../services/import/zip.js');
 | 
				
			||||||
const singleImportService = require('../../services/import/single.js');
 | 
					const singleImportService = require('../../services/import/single');
 | 
				
			||||||
const cls = require('../../services/cls');
 | 
					const cls = require('../../services/cls');
 | 
				
			||||||
const path = require('path');
 | 
					const path = require('path');
 | 
				
			||||||
const becca = require('../../becca/becca');
 | 
					const becca = require('../../becca/becca');
 | 
				
			||||||
 | 
				
			|||||||
@ -1,12 +1,15 @@
 | 
				
			|||||||
"use strict";
 | 
					"use strict";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mimeTypes = require('mime-types');
 | 
					import mimeTypes = require('mime-types');
 | 
				
			||||||
const html = require('html');
 | 
					import html = require('html');
 | 
				
			||||||
const utils = require('../utils');
 | 
					import utils = require('../utils');
 | 
				
			||||||
const mdService = require('./md');
 | 
					import mdService = require('./md');
 | 
				
			||||||
const becca = require('../../becca/becca');
 | 
					import becca = require('../../becca/becca');
 | 
				
			||||||
 | 
					import TaskContext = require('../task_context');
 | 
				
			||||||
 | 
					import BBranch = require('../../becca/entities/bbranch');
 | 
				
			||||||
 | 
					import { Response } from 'express';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function exportSingleNote(taskContext, branch, format, res) {
 | 
					function exportSingleNote(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response) {
 | 
				
			||||||
    const note = branch.getNote();
 | 
					    const note = branch.getNote();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (note.type === 'image' || note.type === 'file') {
 | 
					    if (note.type === 'image' || note.type === 'file') {
 | 
				
			||||||
@ -20,6 +23,9 @@ function exportSingleNote(taskContext, branch, format, res) {
 | 
				
			|||||||
    let payload, extension, mime;
 | 
					    let payload, extension, mime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let content = note.getContent();
 | 
					    let content = note.getContent();
 | 
				
			||||||
 | 
					    if (typeof content !== "string") {
 | 
				
			||||||
 | 
					        throw new Error("Unsupported context type for export.");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (note.type === 'text') {
 | 
					    if (note.type === 'text') {
 | 
				
			||||||
        if (format === 'html') {
 | 
					        if (format === 'html') {
 | 
				
			||||||
@ -64,7 +70,7 @@ function exportSingleNote(taskContext, branch, format, res) {
 | 
				
			|||||||
    taskContext.taskSucceeded();
 | 
					    taskContext.taskSucceeded();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function inlineAttachments(content) {
 | 
					function inlineAttachments(content: string) {
 | 
				
			||||||
    content = content.replace(/src="[^"]*api\/images\/([a-zA-Z0-9_]+)\/?[^"]+"/g, (match, noteId) => {
 | 
					    content = content.replace(/src="[^"]*api\/images\/([a-zA-Z0-9_]+)\/?[^"]+"/g, (match, noteId) => {
 | 
				
			||||||
        const note = becca.getNote(noteId);
 | 
					        const note = becca.getNote(noteId);
 | 
				
			||||||
        if (!note || !note.mime.startsWith('image/')) {
 | 
					        if (!note || !note.mime.startsWith('image/')) {
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user