summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMikael Blomstrand2018-03-03 21:00:06 +0100
committerMikael Blomstrand2018-03-03 21:00:06 +0100
commit4fe3b6d3ff393303f186a404a71308b3664fef02 (patch)
treef8f0e245891276f0580b348e51b286b3423648e9
parent263b3f3dd31583eb506f6dc119eb0153f0eced2a (diff)
downloadaur-4fe3b6d3ff393303f186a404a71308b3664fef02.tar.gz
Patched to use webkit2gtk.
-rw-r--r--.SRCINFO24
-rw-r--r--.gitignore6
-rw-r--r--0003-fixes-184-port-to-WebKit2Gtk.patch133
-rw-r--r--0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch98
-rw-r--r--LICENSE21
-rw-r--r--PKGBUILD65
-rw-r--r--notes32
-rw-r--r--remarkable.patch13
8 files changed, 352 insertions, 40 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 57d6c78c7e54..fcf6239465c2 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,11 +1,10 @@
pkgbase = remarkable
pkgdesc = A free fully featured markdown editor for Linux.
pkgver = 1.87
- pkgrel = 1
+ pkgrel = 2
url = http://remarkableapp.github.io
install = remarkable.install
- arch = i686
- arch = x86_64
+ arch = any
license = MIT
makedepends = python
depends = python
@@ -15,16 +14,23 @@ pkgbase = remarkable
depends = python-beautifulsoup4
depends = python-gtkspellcheck
depends = python-lxml
- depends = webkitgtk
+ depends = webkit2gtk
depends = wkhtmltopdf
depends = gtksourceview3
optdepends = python-lxml: export to HTML format support
- options = !emptydirs
- options = !strip
- source = remarkable_1.87_all.deb::http://remarkableapp.github.io/files/remarkable_1.87_all.deb
+ replaces = remarkable-webkit2gtk
+ source = https://github.com/jamiemcg/Remarkable/archive/v1.87.tar.gz
+ source = 0003-fixes-184-port-to-WebKit2Gtk.patch
+ source = 0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch
+ source = remarkable.patch
source = remarkable.install
- md5sums = b14b7bf5b4d4cbf2acb9559220bba982
- md5sums = 4230de2876e8789bcd5a7cdc84b2a30b
+ source = LICENSE
+ sha1sums = a492dc5d0a276f36846a99287ae93c02e22a5cd8
+ sha1sums = 097f12a6f499bd39b99c32301a9027a9457eaeac
+ sha1sums = d90a26e2830f0306a07b76dc69aa211840f0223e
+ sha1sums = d9fc74c5a0136649f670a345e16c1c88d21a97d2
+ sha1sums = bdbfb750df9e5fb3022f47a46a80555259628cd1
+ sha1sums = 6e5ea06076c85fdd25b79bfc41588f7f7ee9ba29
pkgname = remarkable
diff --git a/.gitignore b/.gitignore
index d1768f2a969d..9cefe8d36b7c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,4 @@
-pkg
-src
-*.pkg.tar.xz
+*.xz
*.deb
+/pkg
+/src
diff --git a/0003-fixes-184-port-to-WebKit2Gtk.patch b/0003-fixes-184-port-to-WebKit2Gtk.patch
new file mode 100644
index 000000000000..55b4a3c08b54
--- /dev/null
+++ b/0003-fixes-184-port-to-WebKit2Gtk.patch
@@ -0,0 +1,133 @@
+From fafd97f41b5fdc68357f54a6e0a2557a7809c36a Mon Sep 17 00:00:00 2001
+From: Harald Weiner <timeraider@gmx.at>
+Date: Sun, 23 Jul 2017 02:14:23 +0200
+Subject: [PATCH 3/4] fixes #184 (port to WebKit2Gtk)
+
+---
+ remarkable/RemarkableWindow.py | 63 +++++++++++++++++++++++++++++++-----------
+ 1 file changed, 47 insertions(+), 16 deletions(-)
+
+diff --git a/remarkable/RemarkableWindow.py b/remarkable/RemarkableWindow.py
+index 12802f3..ea00be9 100644
+--- a/remarkable/RemarkableWindow.py
++++ b/remarkable/RemarkableWindow.py
+@@ -24,10 +24,10 @@
+ import gi
+ gi.require_version('Gtk', '3.0')
+ gi.require_version('GtkSource', '3.0')
+-gi.require_version('WebKit', '3.0')
++gi.require_version('WebKit2', '4.0')
+
+ from bs4 import BeautifulSoup
+-from gi.repository import Gdk, Gtk, GtkSource, Pango, WebKit
++from gi.repository import Gdk, Gtk, GtkSource, Pango, WebKit2
+ from locale import gettext as _
+ from urllib.request import urlopen
+ import markdown
+@@ -113,10 +113,10 @@ class RemarkableWindow(Window):
+ self.text_buffer.connect("changed", self.on_text_view_changed)
+ self.text_view.set_buffer(self.text_buffer)
+ self.text_view.set_wrap_mode(Gtk.WrapMode.WORD)
+-
+- self.live_preview = WebKit.WebView()
+- self.live_preview.connect("console-message", self._javascript_console_message) # Suppress .js output
+- self.live_preview.zoom_out()
++
++ my_settings = self.create_webkit_settings()
++ self.live_preview = WebKit2.WebView.new_with_settings(my_settings)
++ self.zoom_out(self.live_preview)
+
+ self.scrolledwindow_text_view = Gtk.ScrolledWindow()
+ self.scrolledwindow_text_view.add(self.text_view)
+@@ -626,11 +626,11 @@ class RemarkableWindow(Window):
+ self.redo(self)
+
+ def on_toolbutton_zoom_in_clicked(self, widget):
+- self.live_preview.zoom_in()
++ self.zoom_in(self.live_preview)
+ self.scrollPreviewToFix(self)
+
+ def on_toolbutton_zoom_out_clicked(self, widget):
+- self.live_preview.zoom_out()
++ self.zoom_out(self.live_preview)
+ self.scrollPreviewToFix(self)
+
+ def redo(self, widget):
+@@ -1253,7 +1253,7 @@ class RemarkableWindow(Window):
+ styles.css = styles.handwriting_css
+ self.update_style(self)
+ self.update_live_preview(self)
+- self.live_preview.zoom_in()
++ self.zoom_in(self.live_preview)
+ self.remarkable_settings['style'] = "handwriting_css"
+ self.write_settings()
+
+@@ -1351,12 +1351,12 @@ class RemarkableWindow(Window):
+ window_feedback.set_title("Feedback Form")
+ window_feedback.set_default_size(640, 640)
+ window_feedback.set_position(Gtk.WindowPosition.CENTER)
+- feedback_browser = WebKit.WebView()
+- feedback_browser.connect("console-message", self._javascript_console_message) # Suppress .js output
++ my_settings = self.create_webkit_settings()
++ feedback_browser = WebKit2.WebView.new_with_settings(my_settings)
+ feedback_scroller = Gtk.ScrolledWindow()
+ feedback_scroller.add(feedback_browser)
+ window_feedback.add(feedback_scroller)
+- feedback_browser.open("https://jamiemcgowan.typeform.com/to/ng5Lhc")
++ feedback_browser.load_uri("https://jamiemcgowan.typeform.com/to/ng5Lhc")
+ window_feedback.show_all()
+
+ def on_menuitem_about_activate(self, widget):
+@@ -1447,14 +1447,45 @@ class RemarkableWindow(Window):
+ html = self.default_html_start + html_middle + self.default_html_end
+
+ # Update the display, supporting relative paths to local images
+- self.live_preview.load_string(html, "text/html", "utf-8", "file://{}".format(os.path.abspath(self.name)))
++ self.live_preview.load_html(html, "file://{}".format(os.path.abspath(self.name)))
+
+ """
+- This function suppresses the messages from the WebKit (live preview) console
++ This function returns WebKit settings instance to suppress
++ the messages from the WebKit (live preview) console
+ """
+- def _javascript_console_message(self, view, message, line, sourceid):
+- return True
++ def create_webkit_settings(self):
++ result = WebKit2.Settings()
++ result.set_enable_write_console_messages_to_stdout(False) # Suppress .js output
++ return result
+
++ """
++ This function implements zoom_in for WebKit2.WebView
++ """
++ def zoom_in(self, webView):
++ zoom_level = webView.get_zoom_level()
++ zoom_level = zoom_level + self.get_zoom_step()
++ webView.set_zoom_level(zoom_level)
++
++ """
++ This function implements zoom_out for WebKit2.WebView
++ """
++ def zoom_out(self, webView):
++ zoom_level = webView.get_zoom_level()
++ zoom_level = zoom_level - self.get_zoom_step()
++ webView.set_zoom_level(zoom_level)
++
++ """
++ This function returns the same magic number as in previous WebKit API:
++ https://lazka.github.io/pgi-docs/WebKit-3.0/classes/WebSettings.html#WebKit.WebSettings.props.zoom_step
++ """
++ def get_zoom_step(self):
++ return 0.10000000149011612
++
++ """
++ This function resets the zoom_level to the default value
++ """
++ def reset_zoom_level(self, webView):
++ webView.set_zoom_level(1.0)
+
+ """
+ This function deletes any temporary files that were created during execution
+--
+2.16.2
+
diff --git a/0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch b/0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch
new file mode 100644
index 000000000000..6b0524dc247c
--- /dev/null
+++ b/0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch
@@ -0,0 +1,98 @@
+From 2cce6ea49696927300d324637255d3c2cd377e8b Mon Sep 17 00:00:00 2001
+From: Harald Weiner <timeraider@gmx.at>
+Date: Fri, 28 Jul 2017 07:07:57 +0200
+Subject: [PATCH 4/4] fixes #175 (Live Preview Mode Executes JavaScript)
+
+---
+ data/ui/RemarkableWindow.ui | 9 +++++++++
+ remarkable/RemarkableWindow.py | 26 ++++++++++++++++++++++----
+ 2 files changed, 31 insertions(+), 4 deletions(-)
+
+diff --git a/data/ui/RemarkableWindow.ui b/data/ui/RemarkableWindow.ui
+index ab0007c..ca2396e 100644
+--- a/data/ui/RemarkableWindow.ui
++++ b/data/ui/RemarkableWindow.ui
+@@ -405,6 +405,15 @@
+ <property name="active">True</property>
+ </object>
+ </child>
++ <child>
++ <object class="GtkCheckMenuItem" id="menuitem_js">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Enable Java-Script</property>
++ <property name="use_underline">True</property>
++ <property name="active">True</property>
++ </object>
++ </child>
+ <child>
+ <object class="GtkCheckMenuItem" id="menuitem_vertical_layout">
+ <property name="visible">True</property>
+diff --git a/remarkable/RemarkableWindow.py b/remarkable/RemarkableWindow.py
+index ea00be9..c15886a 100644
+--- a/remarkable/RemarkableWindow.py
++++ b/remarkable/RemarkableWindow.py
+@@ -114,8 +114,8 @@ class RemarkableWindow(Window):
+ self.text_view.set_buffer(self.text_buffer)
+ self.text_view.set_wrap_mode(Gtk.WrapMode.WORD)
+
+- my_settings = self.create_webkit_settings()
+- self.live_preview = WebKit2.WebView.new_with_settings(my_settings)
++ self.webkit_settings = self.create_webkit_settings()
++ self.live_preview = WebKit2.WebView.new_with_settings(self.webkit_settings)
+ self.zoom_out(self.live_preview)
+
+ self.scrolledwindow_text_view = Gtk.ScrolledWindow()
+@@ -199,7 +199,8 @@ class RemarkableWindow(Window):
+ if not os.path.isfile(self.settings_path):
+ self.remarkable_settings = {}
+ self.remarkable_settings['css'] = ''
+- self.remarkable_settings['font'] = "Sans 10"
++ self.remarkable_settings['font'] = "Sans 10"
++ self.remarkable_settings['js'] = True
+ self.remarkable_settings['line-numbers'] = True
+ self.remarkable_settings['live-preview'] = True
+ self.remarkable_settings['nightmode'] = False
+@@ -234,6 +235,12 @@ class RemarkableWindow(Window):
+ # Disable word wrap on startup
+ self.builder.get_object("menuitem_word_wrap").set_active(False)
+ self.on_menuitem_word_wrap_activate(self)
++
++ if not 'js' in self.remarkable_settings:
++ self.remarkable_settings['js'] = True
++ if self.remarkable_settings['js'] == False:
++ # Disable Live Preview on startup
++ self.builder.get_object("menuitem_js").set_active(False)
+
+ if self.remarkable_settings['live-preview'] == False:
+ # Disable Live Preview on startup
+@@ -812,7 +819,16 @@ class RemarkableWindow(Window):
+ self.builder.get_object("toolbar1").set_visible(True)
+ self.update_live_preview(self)
+ self.write_settings()
+-
++
++ def on_menuitem_js_activate(self, widget):
++ self.toggle_js(self)
++
++ def toggle_js(self, widget):
++ state = self.webkit_settings.get_enable_javascript()
++ state = not state
++ self.remarkable_settings['js'] = state
++ self.webkit_settings.set_enable_javascript(state)
++ self.write_settings()
+
+ def on_menuitem_swap_activate(self, widget):
+ if self.live_preview.get_visible():
+@@ -1456,6 +1472,8 @@ class RemarkableWindow(Window):
+ def create_webkit_settings(self):
+ result = WebKit2.Settings()
+ result.set_enable_write_console_messages_to_stdout(False) # Suppress .js output
++ #js = self.remarkable_settings['js']
++ result.set_enable_javascript(True) # JS-Kill-Switch for issue #175
+ return result
+
+ """
+--
+2.16.2
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000000..e7323e7a22e1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Jamie McGowan
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/PKGBUILD b/PKGBUILD
index fa45f4417f79..6936e7b547ea 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,11 +1,13 @@
-# Maintainer: Michael Goehler <somebody dot here at gmx dot de>
+# Maintainer: Mikael Blomstrand <gmail: chawlindel>
# Contributor: MaryJaneInChain <gmail.com@maryjaneinchain>
+# Contributor: Michael Goehler <somebody dot here at gmx dot de>
pkgname=remarkable
+replaces=('remarkable-webkit2gtk')
pkgver=1.87
-pkgrel=1
+pkgrel=2
pkgdesc="A free fully featured markdown editor for Linux."
-arch=('i686' 'x86_64')
+arch=('any')
url="http://remarkableapp.github.io"
license=('MIT')
depends=('python'
@@ -15,43 +17,50 @@ depends=('python'
'python-beautifulsoup4'
'python-gtkspellcheck'
'python-lxml'
- 'webkitgtk'
+ 'webkit2gtk'
'wkhtmltopdf'
'gtksourceview3'
)
makedepends=('python')
optdepends=('python-lxml: export to HTML format support')
-options=('!emptydirs' '!strip')
-install="${pkgname}.install"
-source=("${pkgname}_${pkgver}_all.deb::http://remarkableapp.github.io/files/${pkgname}_${pkgver}_all.deb"
- "${pkgname}.install")
-md5sums=('b14b7bf5b4d4cbf2acb9559220bba982'
- '4230de2876e8789bcd5a7cdc84b2a30b')
+
+install="remarkable.install"
+source=("https://github.com/jamiemcg/Remarkable/archive/v${pkgver}.tar.gz"
+ "0003-fixes-184-port-to-WebKit2Gtk.patch"
+ "0004-fixes-175-Live-Preview-Mode-Executes-JavaScript.patch"
+ "remarkable.patch"
+ "remarkable.install"
+ "LICENSE")
+
+sha1sums=('a492dc5d0a276f36846a99287ae93c02e22a5cd8'
+ '097f12a6f499bd39b99c32301a9027a9457eaeac'
+ 'd90a26e2830f0306a07b76dc69aa211840f0223e'
+ 'd9fc74c5a0136649f670a345e16c1c88d21a97d2'
+ 'bdbfb750df9e5fb3022f47a46a80555259628cd1'
+ '6e5ea06076c85fdd25b79bfc41588f7f7ee9ba29')
+
+prepare() {
+ msg2 "Applying patches for webkit2gtk..."
+ cat *.patch | patch -p1 -d "${srcdir}/Remarkable-${pkgver}"
+}
package() {
_python_site=$(python -c 'import site; print(site.getsitepackages()[0]);')
[ -z ${_python_site} ] && echo "error: could not identify python site_packages directory" && return 1
- msg2 "Extracting data.tar.gz..."
- tar -Jxf data.tar.xz -C "${pkgdir}/"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+
+ cd "Remarkable-${pkgver}"
- msg2 "Moving parts in place..."
+ install -Dm 755 "bin/remarkable" "${pkgdir}/usr/bin/remarkable"
+ install -D "debian/remarkable.mime" "${pkgdir}/usr/lib/mime/packages/remarkable"
+ install -D "data/media/remarkable.svg" "${pkgdir}/usr/share/icons/hicolor/scalable/apps/remarkable.svg"
+ install -D remarkable.desktop "${pkgdir}/usr/share/applications/remarkable.desktop"
+
+ mv data/glib-2.0 "${pkgdir}/usr/share/"
- # python
install -d "${pkgdir}/${_python_site}"
- mv "${pkgdir}/usr/lib/python3/dist-packages/"* "${pkgdir}/${_python_site}/"
+ mv markdown pdfkit remarkable remarkable_lib "${pkgdir}/${_python_site}/"
- # license
- install -d "${pkgdir}/usr/share/licenses/${pkgname}/"
- curl -Ls "${url}/license.txt" \
- -o "${pkgdir}/usr/share/licenses/${pkgname}/license.txt"
-
- msg2 "Fixing module include path..."
- sed -i "s/import styles/from remarkable import styles/" \
- "${pkgdir}/${_python_site}/remarkable/RemarkableWindow.py"
-
- msg2 "Removing unnecessities..."
- rm -r "${pkgdir}/usr/lib/mime"
+ mv data "${pkgdir}/usr/share/remarkable/"
}
-
-# vim:set ts=4 sw=4 et:
diff --git a/notes b/notes
new file mode 100644
index 000000000000..0a959bb868a6
--- /dev/null
+++ b/notes
@@ -0,0 +1,32 @@
+
+bin -> usr/bin
+
+_python_site:
+
+markdown -> usr/lib/python3/dist-packages/markdown
+pdfkit -> usr/lib/python3/dist-packages/pdfkit
+remarkable -> usr/lib/python3/dist-packages/remarkable
+remarkable_lib ->
+
+data/glib-2.0/schemas/net.launchpad.remarkable.gschema.xml -> usr/share/glib-2.0/schemas/net.launchpad.remarkable.gschema.xml
+
+data/*/ -> usr/share/remarkable/*/
+ remarkable.svg -> icons/hicolor/scalable/apps/remarkable
+
+
+#M usr/lib/python3.6/site-packages/markdown/extensions/mathjax.py
+#M usr/lib/python3.6/site-packages/markdown/extensions/subscript.py
+#D usr/lib/python3.6/site-packages/remarkable-1.87.egg-info
+#M usr/lib/python3.6/site-packages/remarkable/RemarkableWindow.py
+#D usr/share/applications/remarkable.desktop
+#D usr/share/doc/remarkable/changelog.gz
+#D usr/share/doc/remarkable/copyright
+
+#D usr/share/help/C/remarkable/figures/icon.png
+#D usr/share/help/C/remarkable/index.page
+#D usr/share/help/C/remarkable/preferences.page
+#D usr/share/help/C/remarkable/topic1.page
+
+#M usr/share/icons/hicolor/scalable/apps/remarkable.svg
+#D usr/share/licenses/remarkable-webkit2gtk/license.txt
+#M usr/share/remarkable/ui/RemarkableWindow.ui
diff --git a/remarkable.patch b/remarkable.patch
new file mode 100644
index 000000000000..24fe8b3e2a62
--- /dev/null
+++ b/remarkable.patch
@@ -0,0 +1,13 @@
+diff --git a/remarkable/RemarkableWindow.py b/remarkable/RemarkableWindow.py
+index 50fc3c8..ee110aa 100644
+--- a/remarkable/RemarkableWindow.py
++++ b/remarkable/RemarkableWindow.py
+@@ -37,7 +37,7 @@ import pdfkit
+ import re, subprocess, datetime, os, webbrowser, _thread, sys, locale
+ import tempfile
+ import traceback
+-import styles
++from remarkable import styles
+ import unicodedata
+ import warnings
+ import datetime