Package Details: typora 0.9.60-2

Git Clone URL: https://aur.archlinux.org/typora.git (read-only)
Package Base: typora
Description: Typora will give you a seamless experience as both a reader and a writer.
Upstream URL: https://typora.io/
Keywords: markdown
Licenses: custom:"Copyright (c) 2015 Abner Lee All Rights Reserved."
Submitter: duckbrain
Maintainer: duckbrain
Last Packager: duckbrain
Votes: 48
Popularity: 2.323517
First Submitted: 2016-09-28 06:28
Last Updated: 2018-11-03 19:52

Latest Comments

1 2 3 4 5 Next › Last »

irgendwr commented on 2018-11-03 20:05

@duckbrain wow, that was really quick and solved it. Thanks!

duckbrain commented on 2018-11-03 19:55

@irgendwr Yeah, it's causing more problems than it solves. I reverted back to the binary release.

irgendwr commented on 2018-11-03 19:25

@duckbrain >I prefer having the electron dependency, unless it causes a problem.

Using the electron dependency is currently causing a problem since typora is bundled with and depends on electron 3.x while the electron dependency here is on 2.x. See https://github.com/typora/typora-issues/issues/1932 and https://github.com/typora/typora-issues/issues/1912

Can you at least temporarily use the bundled electron until 3.x is available to fix the issues?

rocka commented on 2018-10-03 13:51

Good to know that changes, but I found 2 new questions:

  1. app configuration path has been changed to ~/.config/Electron, not ~/.config/Typora, because electron did not start with a package.json file. We can use electron's app.setPath() to override it;

  2. the app version in 'Help -> About' displays version of electron, not Typora. We can also override it with the version name from package.json file.

Here was the changed typora.js:

#!/usr/bin/electron

const { join } = require('path');
const { app } = require('electron');
const APP_DIR = '/usr/share/typora/';
const conf = require(APP_DIR + 'package.json');

app.setName(conf.name);
app.setPath('userData', join(app.getPath('appData'), conf.name));
app.getVersion = () => conf.version;

process.argv.shift();
require(APP_DIR + conf.main);

duckbrain commented on 2018-10-03 03:45

@rocka, I used your idea, but without patching the Typora code. My entrypoint is a JavaScript file with electron in the hash-bang, that just immediately removes the extra arg and runs the normal code. It seems to work.

Let me know if there are any other issues with the new system electron package.

rocka commented on 2018-09-26 13:03

Finally I figured out how to keep the featrue "On Launch - Restore last closed files and folders" functionality with system electron. Just patch the .js files.

When typora is launched with bundled electron, it's process.argv equals to ["/usr/share/typora/Typora", "/path/to/file"]. But if it was launched with system electron, it changes to ["/usr/lib/electron/electron", "/path/to/typora", "/path/to/file"], so it would just restore typora folder every times.

Let me show the PKGBUILD and patch:

pkgname=typora
pkgver=0.9.58
pkgrel=1
pkgdesc="Typora will give you a seamless experience as both a reader and a writer."
arch=('x86_64')
license=('custom:"Copyright (c) 2015 Abner Lee All Rights Reserved."')
url="https://typora.io/"
depends=('gconf' 'libxss' 'electron')
makedepends=('asar')
optdepends=('noto-fonts-emoji: Or some other emoji font to see emojis')
provides=('typora')
conflicts=('typora')
source=(
    'typora.sh'
    'atom.js.diff'
    "https://typora.io/./linux/${pkgname}_${pkgver}_amd64.deb"
)
md5sums=(
    'ba1aa3c5c401723a06cb941fe8b7c23a'
    'a103aa5e384d9fc4b54a7aae4e10d4e5'
    '23e55a05ead4115b415c77c1709aa9e6'
)

package() {
    _src="$srcdir/$pkgname"
    mkdir -p "$_src"
    bsdtar -xf data.tar.xz -C "$_src/"

    sed -i '/Change Log/d' "$_src/usr/share/applications/typora.desktop"

    asar e "$_src/usr/share/typora/resources/app/atom.asar" "$_src/usr/share/typora/resources/app/atom"
    patch "$_src/usr/share/typora/resources/app/atom/atom.js" "$srcdir/atom.js.diff"
    asar p "$_src/usr/share/typora/resources/app/atom" "$_src/usr/share/typora/resources/app/atom.asar"
    rm -r "$_src/usr/share/typora/resources/app/atom"

    install -Dm644 "$_src/usr/share/applications/typora.desktop" "$pkgdir/usr/share/applications/typora.desktop"
    install -Dm644 "$_src/usr/share/doc/typora/copyright" "$pkgdir/usr/share/doc/typora/copyright"
    install -Dm755 "$srcdir/typora.sh" "$pkgdir/usr/bin/typora"

    cp -r "$_src/usr/share/icons" "$pkgdir/usr/share/icons"
    cp -r "$_src/usr/share/typora/resources/app" "$pkgdir/usr/share/typora"
}

typora.sh

#!/usr/bin/bash
exec /usr/bin/electron /usr/share/typora $@

atom.js.diff

--- atom.js 2018-09-26 20:48:45.760765096 +0800
+++ atom.1.js   2018-09-26 20:46:57.989992178 +0800
@@ -60,6 +60,9 @@

 function getFilePath(argv, workingDirectory) {
     var path;
+    if (argv[0].endsWith('electron')) {
+        argv.shift();
+    }
     if (argv.length > 1) {
         path = argv[argv.length - 1];
     }

arch440 commented on 2018-08-24 08:07

That makes sense, I was suggesting it because I noticed a regression/change when keeping the electron dependency: the preference "On Launch - Restore last closed files and folders" is not working anymore, and it always opens in the system Typora folder /usr/share/typora/. This was working before.

duckbrain commented on 2018-08-21 23:20

I prefer having the electron dependency, unless it causes a problem. It makes the package much smaller (44038772 to 8509788 bytes) and prevents having these types of issues in the future.

arch440 commented on 2018-08-17 09:10

Today glibc was updated to 2.28-4, so I guess we can remove the electron dependency now?

duckbrain commented on 2018-08-13 17:20

Sorry, I made the fix @rocka suggested, but I forgot to push it (to the correct remote). I can't get into my machine with the key right now, (NetworkManager keeps stopping sshd) but I'll push it when I can.

In the meantime. If you replace /usr/bin/typora with @rocka's script, it should work.

@Peven, good to know that this is a glibc issue. I'm liking the removing the packaged electron to trim down package size anyway.