diff --git a/services/clsi/app/js/ConversionManager.js b/services/clsi/app/js/ConversionManager.js index 210f9f57f7..05575bde73 100644 --- a/services/clsi/app/js/ConversionManager.js +++ b/services/clsi/app/js/ConversionManager.js @@ -175,6 +175,18 @@ const LATEX_EXPORT_CONFIGS = { '--standalone', ], }, + typst: { + fileExtension: 'typ', + compressOutput: false, + getPandocArgs: ({ outputPath }) => [ + '--output', + outputPath, + '--from', + 'latex', + '--to', + 'typst', + ], + }, } async function convertLaTeXToDocumentInDirWithLock( diff --git a/services/web/app/src/Features/Downloads/ProjectDownloadsController.mjs b/services/web/app/src/Features/Downloads/ProjectDownloadsController.mjs index 128911b4d3..fb84e0b167 100644 --- a/services/web/app/src/Features/Downloads/ProjectDownloadsController.mjs +++ b/services/web/app/src/Features/Downloads/ProjectDownloadsController.mjs @@ -20,6 +20,7 @@ const SUPPORTED_CONVERSION_TYPES = new Map([ ['docx', 'docx'], ['markdown', 'zip'], ['html', 'zip'], + ['typst', 'typ'], ]) const exportProjectConversionSchema = z.object({ diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/export-project-with-conversion-button.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/export-project-with-conversion-button.tsx index 22651b74e9..804cc4cbf7 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/export-project-with-conversion-button.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/export-project-with-conversion-button.tsx @@ -9,7 +9,7 @@ import { useEditorManagerContext } from '@/features/ide-react/context/editor-man type ExportProjectWithConversionProps = { featureFlag?: string - conversionType: 'docx' | 'markdown' | 'html' + conversionType: 'docx' | 'markdown' | 'html' | 'typst' label: string menuBarId: string } diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx index 937995237a..39ee468f87 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/menu-bar.tsx @@ -97,6 +97,7 @@ export const ToolbarMenuBar = () => { 'export-as-docx', 'export-as-markdown', 'export-as-html', + 'export-as-typst', ], }, ], diff --git a/services/web/frontend/js/features/ide-react/components/toolbar/project-title.tsx b/services/web/frontend/js/features/ide-react/components/toolbar/project-title.tsx index 99be5300d2..bd0d7cfd7c 100644 --- a/services/web/frontend/js/features/ide-react/components/toolbar/project-title.tsx +++ b/services/web/frontend/js/features/ide-react/components/toolbar/project-title.tsx @@ -95,6 +95,12 @@ export const ToolbarProjectTitle = () => { label={t('export_as_html')} menuBarId="export-as-html" /> + RootDocInfo ) { diff --git a/services/web/locales/cs.json b/services/web/locales/cs.json index c44a0ae9d2..3323b6aa41 100644 --- a/services/web/locales/cs.json +++ b/services/web/locales/cs.json @@ -339,5 +339,6 @@ "your_subscription_has_expired": "Vaše předplatné vypršelo.", "top_bottom_split_view": "Horní/dolní rozdělené zobrazení", "your_subscriptions": "Vaše předplatná", - "editor_settings": "Nastavení editoru" + "editor_settings": "Nastavení editoru", + "export_as_typst": "Exportovat jako Typst" } diff --git a/services/web/locales/da.json b/services/web/locales/da.json index 7f6cc84e19..e28c8438df 100644 --- a/services/web/locales/da.json +++ b/services/web/locales/da.json @@ -2167,5 +2167,6 @@ "zotero_reference_loading_error_forbidden": "Kunne ikke indlæse referencer fra Zotero, genforbind venligst din konto og prøv igen", "top_bottom_split_view": "Øverste/nedre delt visning", "zotero_sync_description": "Via Zotero-integrationen kan du importere dine referencer fra Zotero ind i dine __appName__-projekter.", - "editor_settings": "Editorindstillinger" + "editor_settings": "Editorindstillinger", + "export_as_typst": "Eksportér som Typst" } diff --git a/services/web/locales/de.json b/services/web/locales/de.json index b0ec8de33d..a7aeb22818 100644 --- a/services/web/locales/de.json +++ b/services/web/locales/de.json @@ -892,6 +892,7 @@ "explore_plans": "Produkte entdecken", "export_as_docx": "Export als Word-Dokument (.docx)", "export_as_html": "Export als HTML (.html)", + "export_as_typst": "Als Typst exportieren", "export_as_markdown": "Als Markdown exportieren (.md)", "export_csv": "CSV-Datei exportieren", "export_project_to_github": "Projekt nach GitHub exportieren", diff --git a/services/web/locales/en.json b/services/web/locales/en.json index d6dba2bdae..031bcf3d71 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -877,6 +877,7 @@ "explore_plans": "Explore plans", "export_as_docx": "Export as Word document (.docx)", "export_as_html": "Export as HTML (.html)", + "export_as_typst": "Export as Typst", "export_as_markdown": "Export as Markdown (.md)", "export_csv": "Export CSV", "export_project_to_github": "Export Project to GitHub", diff --git a/services/web/locales/es.json b/services/web/locales/es.json index edf0a35710..189e09c530 100644 --- a/services/web/locales/es.json +++ b/services/web/locales/es.json @@ -878,6 +878,7 @@ "explore_plans": "Explorar planes", "export_as_docx": "Exportar como documento de Word (.docx)", "export_as_html": "Exportar como HTML (.html)", + "export_as_typst": "Exportar como Typst", "export_as_markdown": "Exportar como Markdown (.md)", "export_csv": "Exportar CSV", "export_project_to_github": "Exportar proyecto a GitHub", diff --git a/services/web/locales/fi.json b/services/web/locales/fi.json index 1ef9badeec..5c39d2951b 100644 --- a/services/web/locales/fi.json +++ b/services/web/locales/fi.json @@ -345,5 +345,6 @@ "your_subscriptions": "Tilauksesi tilaukset", "top_bottom_split_view": "Ylä/alakerros jaettu näkymä", "zh-CN": "Kiina", - "editor_settings": "Editorin asetukset" + "editor_settings": "Editorin asetukset", + "export_as_typst": "Vie Typst-muotoon" } diff --git a/services/web/locales/fr.json b/services/web/locales/fr.json index 21e434370d..73acd4b579 100644 --- a/services/web/locales/fr.json +++ b/services/web/locales/fr.json @@ -880,6 +880,7 @@ "explore_plans": "Découvrir les offres", "export_as_docx": "Exporter sous forme de document Word (.docx)", "export_as_html": "Exporter au format HTML (.html)", + "export_as_typst": "Exporter en Typst", "export_as_markdown": "Exporter en Markdown (.md)", "export_csv": "Exporter en CSV", "export_project_to_github": "Exporter le projet vers GitHub", diff --git a/services/web/locales/it.json b/services/web/locales/it.json index ece8518c53..5cf5169ca5 100644 --- a/services/web/locales/it.json +++ b/services/web/locales/it.json @@ -877,6 +877,7 @@ "explore_plans": "Esplora i piani", "export_as_docx": "Esporta come documento Word (.docx)", "export_as_html": "Esporta come HTML (.html)", + "export_as_typst": "Esporta come Typst", "export_as_markdown": "Esporta come Markdown (.md)", "export_csv": "Esporta CSV", "export_project_to_github": "Esporta Progetto in GitHub", diff --git a/services/web/locales/ja.json b/services/web/locales/ja.json index 7adcf2bb24..64b9f47793 100644 --- a/services/web/locales/ja.json +++ b/services/web/locales/ja.json @@ -489,5 +489,6 @@ "zotero_reference_loading_error_forbidden": "Zoteroのリファレンスを読み込むことができませんでした。アカウントを再リンクして、再度お試しください", "top_bottom_split_view": "上下分割ビュー", "zotero_sync_description": "Zoteroを統合すると、Zoteroから__appName__プロジェクトにリファレンスをインポートすることができます。", - "editor_settings": "エディタ設定" + "editor_settings": "エディタ設定", + "export_as_typst": "Typstとしてエクスポート" } diff --git a/services/web/locales/ko.json b/services/web/locales/ko.json index 78ab4a8dfb..3c9a132666 100644 --- a/services/web/locales/ko.json +++ b/services/web/locales/ko.json @@ -550,5 +550,6 @@ "your_subscriptions": "나의 구독 목록", "top_bottom_split_view": "상하 분할 보기", "zh-CN": "中國語", - "editor_settings": "편집기 설정" + "editor_settings": "편집기 설정", + "export_as_typst": "Typst로 내보내기" } diff --git a/services/web/locales/nl.json b/services/web/locales/nl.json index fe16a39fbc..3d75d875db 100644 --- a/services/web/locales/nl.json +++ b/services/web/locales/nl.json @@ -560,5 +560,6 @@ "zotero_reference_loading_error_expired": "Zotero token verlopen, gelieve je account opnieuw te koppelen", "top_bottom_split_view": "Boven/onder gesplitst", "zotero_reference_loading_error_forbidden": "Kon referenties niet laden vanaf Zotero, gelieve je account opnieuw te koppelen en nogmaals te proberen", - "editor_settings": "Editor-instellingen" + "editor_settings": "Editor-instellingen", + "export_as_typst": "Exporteren als Typst" } diff --git a/services/web/locales/no.json b/services/web/locales/no.json index 2655630bee..ef0ee40a05 100644 --- a/services/web/locales/no.json +++ b/services/web/locales/no.json @@ -391,5 +391,6 @@ "your_subscriptions": "Dine abonnementer", "top_bottom_split_view": "Øvre/nedre delt visning", "zh-CN": "Kinesisk", - "editor_settings": "Redaktørinnstillinger" + "editor_settings": "Redaktørinnstillinger", + "export_as_typst": "Eksporter som Typst" } diff --git a/services/web/locales/pl.json b/services/web/locales/pl.json index 3a99fc4636..3ad3088c27 100644 --- a/services/web/locales/pl.json +++ b/services/web/locales/pl.json @@ -230,5 +230,6 @@ "your_projects": "Twoje projekty", "top_bottom_split_view": "Widok podzielony góra/dół", "your_subscriptions": "Twoje subskrypcje", - "editor_settings": "Ustawienia edytora" + "editor_settings": "Ustawienia edytora", + "export_as_typst": "Eksportuj jako Typst" } diff --git a/services/web/locales/pt.json b/services/web/locales/pt.json index 543798c339..f392e1c56a 100644 --- a/services/web/locales/pt.json +++ b/services/web/locales/pt.json @@ -660,5 +660,6 @@ "zotero_reference_loading_error_forbidden": "Não foi possível carregar as referências do Zotero, por favor, revincule sua conta e tente novamente", "top_bottom_split_view": "Divisão superior/inferior", "zotero_sync_description": "A integração Zotero permite você importar as referências do zotero para seus projetos no __appName__.", - "editor_settings": "Configurações do editor" + "editor_settings": "Configurações do editor", + "export_as_typst": "Exportar como Typst" } diff --git a/services/web/locales/ru.json b/services/web/locales/ru.json index 9448dcf4f5..8bec6a0c4a 100644 --- a/services/web/locales/ru.json +++ b/services/web/locales/ru.json @@ -465,5 +465,6 @@ "your_subscriptions": "Ваши подписки", "top_bottom_split_view": "Разделить сверху/снизу", "zh-CN": "Китайский", - "editor_settings": "Настройки редактора" + "editor_settings": "Настройки редактора", + "export_as_typst": "Экспорт в Typst" } diff --git a/services/web/locales/sv.json b/services/web/locales/sv.json index 302f921193..2fd08b8e09 100644 --- a/services/web/locales/sv.json +++ b/services/web/locales/sv.json @@ -937,5 +937,6 @@ "zotero_reference_loading_error_forbidden": "Kunde inte ladda referenser från Zotero, vänligen återkoppla ditt konto och försök igen", "top_bottom_split_view": "Övre/nedre delad vy", "zotero_sync_description": "Med Zotero integrering kan du importera dina referenser direkt från Zotero till ditt __appName__ projekt.", - "editor_settings": "Editorinställningar" + "editor_settings": "Editorinställningar", + "export_as_typst": "Exportera som Typst" } diff --git a/services/web/locales/tr.json b/services/web/locales/tr.json index 0a21bdd644..5f4917b0f3 100644 --- a/services/web/locales/tr.json +++ b/services/web/locales/tr.json @@ -377,5 +377,6 @@ "your_subscriptions": "Abonelikleriniz", "top_bottom_split_view": "Yukarı/aşağı bölünmüş görünüm", "zh-CN": "Çince", - "editor_settings": "Düzenleyici ayarları" + "editor_settings": "Düzenleyici ayarları", + "export_as_typst": "Typst olarak dışa aktar" } diff --git a/services/web/locales/zh-CN.json b/services/web/locales/zh-CN.json index d8646e7bb6..89a976cdab 100644 --- a/services/web/locales/zh-CN.json +++ b/services/web/locales/zh-CN.json @@ -2533,5 +2533,6 @@ "zotero_reference_loading_error_forbidden": "无法加载Zotero的参考文献,请重新关联您的账户后重试", "zotero_sync_description": "集成 Zotero 后,您可以将 Zotero 的参考文献导入__appName__项目。", "zotero_upgrade_prompt_content": "关联您的 Zotero 帐户,即可直接在项目中搜索并添加 Zotero 中的参考文献——它们将自动添加到您的 .bib 文件中。或者,您也可以将它们作为文件导入到您的 __appName__ 项目中。", - "zotero_upgrade_prompt_title": "引用自 Zotero" + "zotero_upgrade_prompt_title": "引用自 Zotero", + "export_as_typst": "导出为 Typst" }