productName: "MarkText"
appId: "com.github.marktext.marktext"

asar: true
asarUnpack:
- "**/*.node"
directories:
  output: "build"
# Workaround: Don't download prebuilt libraries (GH#2953).
buildDependenciesFromSource: true
files:
- "dist/electron/**/*"
# Don't bundle these files
- "!**/node_modules/**/{CHANGELOG.md,README.md,README,readme.md,readme}"
- "!node_modules/css-b64-images/{draft.png,draft.xcf}"
- "!node_modules/dagre-d3-renderer/dist/demo/"
- "!node_modules/dagre-d3/dist/demo/"
- "!node_modules/dragula/resources"
- "!node_modules/jest-image-snapshot/images/"
- "!node_modules/jest-image-snapshot/jest-image-snapshot.png"
- "!node_modules/**/*.js.map"
- "!node_modules/**/*.cjs.map"
- "!node_modules/**/*.mjs.map"
- "!node_modules/**/*.ts.map"
- "!node_modules/vscode-ripgrep/{jsconfig.json,*.md,LICENSE}"
- "!node_modules/vscode-ripgrep/download.js"
- "!node_modules/vscode-ripgrep/postinstall.js"
# Don't bundle build files
- "!node_modules/ced/bin"
- "!node_modules/ced/vendor"
- "!node_modules/fontmanager-redux/bin"
- "!node_modules/keyboard-layout/bin"
- "!node_modules/keytar/bin"
- "!node_modules/native-keymap/bin"
# Large source files that aren't needed
- "!node_modules/dagre-d3/dist/dagre-d3.min.js"
- "!node_modules/mermaid/dist/mermaid.js"
- "!node_modules/mermaid/dist/mermaid.min.js"
- "!node_modules/mermaid/dist/mermaid.esm.min.mjs"
- "!node_modules/katex/dist/katex.min.js"
- "!node_modules/katex/dist/katex.mjs"
- "!node_modules/vega/build-es5/"
- "!node_modules/vega-embed/build-es5/"
# Don't bundle Linux build files
- "!node_modules/ced/build/Release/compact_enc_det.a"
# Don't bundle Windows build files
- "!node_modules/**/{*.vcxproj,*.vcxproj.filters}"
- "!node_modules/**/build/Release/{*.lib,*.exp,*.ilk,*.pdb,*.iobj,*.ipdb}"
- "!node_modules/**/build/Release/obj"
- "!node_modules/ced/build/vendor"
extraFiles:
- "LICENSE"
- from: "resources/THIRD-PARTY-LICENSES.txt"
  to: "THIRD-PARTY-LICENSES.txt"

fileAssociations:
- ext:
  - "md"
  - "markdown"
  - "mmd"
  - "mdown"
  - "mdtxt"
  - "mdtext"
  - "mdx"
  name: "Markdown"
  description: "Markdown document"
  role: "Editor"
  icon: "../resources/icons/md.icns"
mac:
  artifactName: "marktext-${arch}-mac.${ext}"
  icon: "resources/icons/icon.icns"
  darkModeSupport: true
  target:
    - target: dmg
      arch: [x64, arm64]
    - target: zip
      arch: [x64, arm64]
dmg:
  artifactName: "marktext-${arch}.${ext}"
  contents:
  - x: 410
    y: 240
    type: "link"
    path: "/Applications"
  - x: 130
    y: 240
    type: "file"
win:
  artifactName: "marktext-${arch}-win.${ext}"
  icon: "resources/icons/icon.ico"
  target:
  - target: "nsis"
    arch: [ia32, x64]
  - target: "zip"
    arch: [ia32, x64]
  requestedExecutionLevel: "asInvoker"
nsis:
  artifactName: "marktext-setup.${ext}"
  perMachine: false
  oneClick: false
  allowToChangeInstallationDirectory: true
  include: "resources/windows/installer.nsh"
linux:
  artifactName: "marktext-${arch}.${ext}"
  executableName: "marktext"
  description: "A simple and elegant open-source markdown editor that focused on speed and usability."
  maintainer: "MarkText Contributors"
  category: "Office;TextEditor;Utility"
  mimeTypes:
  - "text/markdown"
  icon: "resources/icons"
  desktop:
    StartupWMClass: "marktext"
    Keywords: "marktext;"
  target:
  - target: "AppImage"
  - target: "deb"
  - target: "rpm"
  - target: "tar.gz"
  # Workaround because file association array doesn't work.
  fileAssociations:
  - ext: "md"
    name: "Markdown"
    description: "Markdown document"
  - ext: "markdown"
    name: "Markdown"
    description: "Markdown document"
  - ext: "mmd"
    name: "Markdown"
    description: "Markdown document"
  - ext: "mdown"
    name: "Markdown"
    description: "Markdown document"
  - ext: "mdtxt"
    name: "Markdown"
    description: "Markdown document"
  - ext: "mdtext"
    name: "Markdown"
    description: "Markdown document"
deb:
  # Custom dependencies:
  depends:
  # keytar
  - "libsecret-1-0"
  # keyboard-layout
  - "libx11-xcb1"
  - "libxkbfile1"
  # fontmanager
  - "libfontconfig1"
  fpm:
  # Expat := MIT like
  - "--license=Expat"
rpm:
  # Custom dependencies:
  depends:
  # keytar
  - "libsecret"
  # keyboard-layout
  - "libX11-xcb"
  - "libxkbfile"
  # fontmanager
  - "fontconfig"
