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"
}