Remove js/

The conkeror interface has been moved to its own repository:
[http://code.ryuslash.org/clark-conkeror/]
This commit is contained in:
Tom Willemse 2013-08-26 23:58:50 +02:00
parent a947b17f67
commit e4dc1824b2
4 changed files with 1 additions and 446 deletions

View file

@ -20,7 +20,7 @@ export DESTDIR ?= /usr/local
export INSTALL_PROGRAM = $(INSTALL)
export INSTALL_DATA = $(INSTALL) -m 644
dirs = lisp doc js
dirs = lisp doc
install-dirs = $(addprefix install-,$(dirs))
uninstall-dirs = $(addprefix uninstall-,$(dirs))
install-strip-dirs = $(addprefix installstrip-,$(dirs))

View file

@ -1,31 +0,0 @@
# Copyright (C) 2013 Tom Willemsen <tom at ryuslash dot org>
#
# This file is part of CLark
#
# CLark is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# CLark is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with CLark. If not, see <http://www.gnu.org/licenses/>.
DESTDIR ?= /usr/local
.PHONY: all install uninstall
all:
install: clark.js
$(INSTALL_DATA) clark.js \
"$(DESTDIR)/share/conkeror/modules/clark.js"
install-strip:
$(MAKE) install
uninstall:
rm -f "$(DESTDIR)/share/conkeror/modules/clark.js"

View file

@ -1,100 +0,0 @@
# Copyright (C) 2013 Tom Willemsen <tom at ryuslash dot org>
#
# This file is part of CLark
#
# CLark is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# CLark is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with CLark. If not, see <http://www.gnu.org/licenses/>.
#+TITLE: Conkeror
#+STARTUP: showall
[[http://conkeror.org][Conkeror]] is an awesome xulrunner-based web browser with Emacs-like
functionality. It is easily extended and if you like Emacs, a
pleasure to use. It does not seem to have great bookmark management
capabilities, unless you use firefox's bookmarking tools. This is one
of the reasons CLark was written.
* Set-up
To use the CLark Conkeror module you need to put its location in
Conkeror's load path, afterwards you should load or require it. So
in your ~.conkerorrc~ you should put:
#+BEGIN_EXAMPLE
load_paths.push("file:///path/to/clark/js/");
require("clark");
#+END_EXAMPLE
If you don't have the CLark executable in your path you should set
the =clark_program= user variable to the location of the CLark
executable:
#+BEGIN_EXAMPLE
clark_program = "/path/to/clark";
#+END_EXAMPLE
Once that is done you kan either bind the available functions to
the keys you like, or you could bind =clark_keymap= to a key, for
example:
#+BEGIN_EXAMPLE
define_key(content_buffer_normal_keymap, "b", clark_keymap);
#+END_EXAMPLE
If you would like to see whether or not you've bookmarked the
current URL, you could add the =clark_bookmarked_widget= to your
Conkeror mode-line:
#+BEGIN_EXAMPLE
add_hook("mode_line_hook", mode_line_adder(clark_bookmarked_widget), true);
#+END_EXAMPLE
If you don't like the way the =clark_bookmarked_widget= shows you
whether or not the current URL has been bookmarked, you can
customize these by setting either or both of the variables
=clark_bookmarked_string= and =clark_not_bookmarked_string=.
* Usage
The Conkeror module is written to mirror the functionality found in
CLark, here's a list of its commands:
- =clark-exists-p= :: Prints an indication of whether or not the
current URL has been bookmarked. Uses the same
command the =clark_bookmarked_widget= does, only
requires the user to explicitly call it.
- =clark-add= :: Add the curren URL to CLark. Asks for a title,
description and any tags you wish to assign it.
- =clark-add-link= :: Does the same thing =clark-add= does, except it
also asks which link found on the current page
to bookmark, instead of using the current URL.
- =clark-edit= :: Edit the current URL's data. Asks for a name and a
description, if either one is left empty, it is not
sent to CLark and thus not changed.
- =clark-find-url= :: Calls =find-url= with completions gathered from
CLark. Uses the =search= command, so any text
typed into the minibuffer gets matched as a
substring of a bookmark's title, or a tag.
- =clark-find-url-new-buffer= :: Does thee same thing =clark-find-url=
does, except it opens the URL in a new buffer, instead of the
current buffer.
- =clark-remove= :: Removes the current URL from CLark.
- =clark-set-tags= :: Replace or remove the tags for the current url's
bookmark. If any tags are given they replace the
bookmark's old tags, if the field is left empty,
all tags are removed.
All of these are included in the =clark_keymap=.

View file

@ -1,314 +0,0 @@
/* Copyright (C) 2013 Tom Willemsen <tom at ryuslash dot org>
This file is part of CLark
CLark is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
CLark is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with CLark. If not, see <http://www.gnu.org/licenses/>.
*/
/// Commentary:
// A wrapper script that should allow conkeror to interface with
// CLark.
/// Code:
define_variable("clark_program", "clark",
"The location of the clark executable.");
define_variable("clark_bookmarked_string", "+",
"Text to show if the current url has been bookmarked.");
define_variable("clark_not_bookmarked_string", "-",
"Text to show it the current url has not been"
+ " bookmarked.");
define_browser_object_class(
"clark-bookmark", null,
function (I, prompt) {
check_buffer(I.buffer, content_buffer);
var result = yield I.buffer.window.minibuffer.read(
$prompt = prompt, $completer = clark_complete
);
yield co_return(result);
}
);
// Add URL to clark, ask for a title (provide TITLE as a
// default), description and any number of tags.
function clark_add_url(I, url, title)
{ let url_string = load_spec_uri_string(load_spec(url));
let title = yield I.minibuffer.read($prompt="name (required): ",
$initial_value=title);
let description = yield I.minibuffer.read(
$prompt="extended description: "
);
let tags = yield I.minibuffer.read(
$prompt="tags (comma delimited): "
);
let command = clark_program + ' add "' + url_string + '" "' + title
+ '" "' + description + '" \''
+ tags.split(',').map(function (str)
{ return str.trim(); }).join("' '")
+ "'";
let result = yield clark_shell_command(command);
yield co_return(result);
}
function clark_add(I) {
check_buffer(I.buffer, content_buffer);
let result = yield clark_add_url(I, I.buffer.top_frame,
I.buffer.title);
if (result === "")
I.window.minibuffer.message('Added to clark');
else
I.window.minibuffer.message('Couldn\'t add to clark');
}
interactive("clark-add",
"Bookmark the current page in clark",
clark_add);
function clark_add_link(I) {
check_buffer(I.buffer, content_buffer);
var bo = yield read_browser_object(I);
let result = yield clark_add_url(I, encodeURIComponent(bo),
bo.textContent);
if (result === "")
I.window.minibuffer.message('Added to clark');
else
I.window.minibuffer.message('Couldn\'t add to clark');
}
interactive("clark-add-link",
"Select and bookmark a link in clark",
clark_add_link);
function clark_bookmarked_widget(window) {
this.class_name = "clark-bookmark-widget";
text_widget.call(this, window);
this.add_hook("current_content_buffer_location_change_hook");
this.add_hook("select_buffer_hook");
}
clark_bookmarked_widget.prototype = {
constructor: clark_bookmarked_widget,
__proto__: text_widget.prototype,
update: function () {
var obj = this;
function doit () {
var result = yield clark_exists_p(
obj.window.buffers.current.description
);
obj.view.text = result == "yes"
? clark_bookmarked_string
: clark_not_bookmarked_string;
}
co_call(doit());
}
};
function clark_complete(input, pos, conservative)
{
if (pos == 0 && conservative)
yield co_return(undefined);
let str = input.substring(0, pos);
var data = "", error = "", ret = [];
var result = 0;
if (str == "")
result = yield shell_command(
clark_program + " --script",
$fds = [{ output: async_binary_string_writer("") },
{ input: async_binary_reader(
function (s) data += s || "") },
{ input: async_binary_reader(
function (s) error += s || "") }]);
else
result = yield shell_command_with_argument(
clark_program + " --script search {}", str,
$fds = [{ output: async_binary_string_writer("") },
{ input: async_binary_reader(
function (s) data += s || "") },
{ input: async_binary_reader(
function (s) error += s || "") }]);
if (result != 0 || error != "")
throw new Error("result: " + result + ", error: " + error);
else if (data != "") {
data.split('').forEach(function (row) {
ret.push(row.split(''));
});
let c = { count: ret.length,
get_string: function (i) ret[i][1],
get_description: function (i) ret[i][2],
get_input_state: function (i) [ret[i][0]] };
yield co_return(c);
}
}
interactive("clark-find-url",
"Find a page from clark in the current buffer",
"find-url",
$browser_object = browser_object_clark_bookmark);
interactive("clark-find-url-new-buffer",
"Find a page from clark in a new buffer",
"find-url-new-buffer",
$browser_object = browser_object_clark_bookmark);
function clark_edit(I) {
check_buffer(I.buffer, content_buffer);
let url_string =
load_spec_uri_string(load_spec(I.buffer.top_frame));
let title = yield I.minibuffer.read(
$prompt="name (leave empty to skip): ",
$initial_value=I.buffer.title
);
let description = yield I.minibuffer.read(
$prompt="description (leave empty to skip): "
);
let command = clark_program + ' edit "' + url_string + '" ';
if (title == "" && description == "")
I.window.minibuffer.message('Nothing to change');
else {
if (title != "")
command += "--name '" + title + "' ";
if (description != "")
command += "--description '" + description + "' ";
var result = yield clark_shell_command(command);
if (result === "")
I.window.minibuffer.message("CLark done");
else
I.window.minibuffer.message("Error during CLark operation.");
}
}
interactive("clark-edit", "Edit information for the current URL.",
clark_edit);
function clark_exists_p(url) {
let command = clark_program + ' exists "' + url + '"';
var data = "", error = "";
var result = yield shell_command(
command,
$fds = [{ output: async_binary_string_writer("") },
{ input: async_binary_reader(
function (s) data += s || "") },
{ input: async_binary_reader(
function (s) error += s || "") }]
);
if (error != "")
throw new Error("Error occurred with CLark: " + error);
yield co_return(data.trim());
}
interactive("clark-exists-p", "Check to see if the current url"
+ " exists in the database.",
function (I) {
check_buffer(I.buffer, content_buffer);
let data = yield clark_exists_p(
load_spec_uri_string(load_spec(I.buffer.top_frame))
);
I.window.minibuffer.message(data);
});
function clark_remove(I) {
check_buffer(I.buffer, content_buffer);
let url_string =
load_spec_uri_string(load_spec(I.buffer.top_frame));
let command = clark_program + ' remove "' + url_string + '"';
let result = yield clark_shell_command(command);
if (result === "")
I.window.minibuffer.message("CLark done");
else
I.window.minibuffer.message("Error during CLark operation.");
}
interactive("clark-remove", "Remove the bookmark of the current URL"
+ " from the database.", clark_remove);
function clark_set_tags(I) {
check_buffer(I.buffer, content_buffer);
let url_string =
load_spec_uri_string(load_spec(I.buffer.top_frame));
let tags = yield I.minibuffer.read(
$prompt="tags (comma delimited): "
);
let command = clark_program + ' set-tags "' + url_string + '" '
+ tags.split(',').map(
function (str) { return "'" + str.trim() + "'"; }
).join(" ");
let result = yield clark_shell_command(command);
if (result === "")
I.window.minibuffer.message("CLark done");
else
I.window.minibuffer.message("Error during CLark operation.");
}
interactive("clark-set-tags", "Replace the tags for the bookmark of"
+ " the current URL.", clark_set_tags);
function clark_random(I)
{
check_buffer(I.buffer, content_buffer);
let tag = yield I.minibuffer.read($prompt="tag: ");
let command = clark_program + ' random';
if (tag != "")
command += ' ' + tag;
let result = yield clark_shell_command(command);
if (result)
I.buffer.load(result);
}
interactive("clark-random", "Open a random bookmark", clark_random);
function clark_shell_command(command)
{
let data = "", error = "";
let res = yield shell_command(
command,
$fds = [{ output: async_binary_string_writer("") },
{ input: async_binary_reader(
function (s) data += s || ""
)},
{ input: async_binary_reader(
function (s) error += s || ""
)}]
);
yield co_return(res == 0 && error == "" && data);
}
define_keymap("clark_keymap");
define_key(clark_keymap, "#", "clark-random");
define_key(clark_keymap, "?", "clark-exists-p");
define_key(clark_keymap, "a", "clark-add");
define_key(clark_keymap, "A", "clark-add-link");
define_key(clark_keymap, "e", "clark-edit");
define_key(clark_keymap, "f", "clark-find-url");
define_key(clark_keymap, "F", "clark-find-url-new-buffer");
define_key(clark_keymap, "r", "clark-remove");
define_key(clark_keymap, "t", "clark-set-tags");
provide("clark");