Rename linkwave to markam
This commit is contained in:
parent
f379783d28
commit
b467939385
11 changed files with 78 additions and 84 deletions
9
Makefile
9
Makefile
|
@ -1,4 +1,7 @@
|
|||
.PHONY: all
|
||||
dirs = src doc
|
||||
|
||||
all:
|
||||
$(MAKE) -C src/
|
||||
.PHONY: all $(dirs)
|
||||
|
||||
all: $(dirs)
|
||||
$(dirs):
|
||||
$(MAKE) -C $@
|
||||
|
|
10
README.org
10
README.org
|
@ -1,9 +1,3 @@
|
|||
* nlinkwave
|
||||
* Markam
|
||||
|
||||
I'm working on replacing [[http://code.ryuslash.org/cgit.cgi/linkwave/][linkwave]] with this project soon, with the
|
||||
hope of making development on/for Windows easier and becaus scheme
|
||||
is fun!
|
||||
|
||||
*Note:* Once I determine that ~nlinkwave~ is capable of everything
|
||||
linkwave is I will change the name of this repository, keep this in
|
||||
mind when you are having trouble pulling changes in the future.
|
||||
Collects bookmarks.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* linkwave -- Store/retrieve/manage bookmarks
|
||||
/* markam -- Store/retrieve/manage bookmarks
|
||||
Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
|
@ -17,16 +17,16 @@
|
|||
/// Commentary:
|
||||
|
||||
// A wrapper script that should allow conkeror to interface with
|
||||
// linkwave. Does not yet allow searching through collected
|
||||
// bookmarks, only adding new ones.
|
||||
// markam. Does not yet allow searching through collected bookmarks,
|
||||
// only adding new ones.
|
||||
|
||||
/// Code:
|
||||
|
||||
define_variable("linkwave_program", "linkwave",
|
||||
"The location of the linkwave executable.");
|
||||
define_variable("markam_program", "markam",
|
||||
"The location of the markam executable.");
|
||||
|
||||
function linkwave_add_url(I, url, title)
|
||||
{ // Add URL to linkwave, ask for a title (provide TITLE as a
|
||||
function markam_add_url(I, url, title)
|
||||
{ // Add URL to markam, ask for a title (provide TITLE as a
|
||||
// default), description and any number of tags.
|
||||
let url_string = load_spec_uri_string(load_spec(url));
|
||||
let title = yield I.minibuffer.read($prompt="name (required): ",
|
||||
|
@ -37,7 +37,7 @@ function linkwave_add_url(I, url, title)
|
|||
let tags = yield I.minibuffer.read(
|
||||
$prompt="tags (comma delimited): "
|
||||
);
|
||||
let command = linkwave_program + ' "' + url_string + '" "' + title
|
||||
let command = markam_program + ' "' + url_string + '" "' + title
|
||||
+ '" "' + description + '" \''
|
||||
+ tags.split(',').map(function (str)
|
||||
{ return str.trim(); }).join("' '")
|
||||
|
@ -45,33 +45,33 @@ function linkwave_add_url(I, url, title)
|
|||
yield shell_command(command);
|
||||
}
|
||||
|
||||
function linkwave_add(I) {
|
||||
function markam_add(I) {
|
||||
check_buffer(I.buffer, content_buffer);
|
||||
let result = yield linkwave_add_url(I, I.buffer.top_frame,
|
||||
let result = yield markam_add_url(I, I.buffer.top_frame,
|
||||
I.buffer.title);
|
||||
|
||||
if (!result)
|
||||
I.window.minibuffer.message('Added to linkwave');
|
||||
I.window.minibuffer.message('Added to markam');
|
||||
else
|
||||
I.window.minibuffer.message('Couldn\'t add to linkwave');
|
||||
I.window.minibuffer.message('Couldn\'t add to markam');
|
||||
}
|
||||
interactive("linkwave-add",
|
||||
"Bookmark the current page in linkwave",
|
||||
linkwave_add);
|
||||
interactive("markam-add",
|
||||
"Bookmark the current page in markam",
|
||||
markam_add);
|
||||
|
||||
function linkwave_add_link(I) {
|
||||
function markam_add_link(I) {
|
||||
check_buffer(I.buffer, content_buffer);
|
||||
bo = yield read_browser_object(I);
|
||||
let result = yield linkwave_add_url(I, encodeURIComponent(bo),
|
||||
let result = yield markam_add_url(I, encodeURIComponent(bo),
|
||||
bo.textContent);
|
||||
|
||||
if (!result)
|
||||
I.window.minibuffer.message('Added to linkwave');
|
||||
I.window.minibuffer.message('Added to markam');
|
||||
else
|
||||
I.window.minibuffer.message('Couldn\'t add to linkwave');
|
||||
I.window.minibuffer.message('Couldn\'t add to markam');
|
||||
}
|
||||
interactive("linkwave-add-link",
|
||||
"Select and bookmark a link in linkwave",
|
||||
linkwave_add_link);
|
||||
interactive("markam-add-link",
|
||||
"Select and bookmark a link in markam",
|
||||
markam_add_link);
|
||||
|
||||
provide("linkwave");
|
||||
provide("markam");
|
|
@ -1,4 +1,4 @@
|
|||
.PHONY: all
|
||||
|
||||
all: linkwave.info
|
||||
linkwave.info: linkwave.texi
|
||||
all: markam.info
|
||||
markam.info: markam.texi
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
\input texinfo @c -*-texinfo-*-
|
||||
@c %**start of header
|
||||
@setfilename linkwave.info
|
||||
@settitle linkwave User Manual
|
||||
@setfilename markam.info
|
||||
@settitle markam User Manual
|
||||
@c %**end of header
|
||||
@copying
|
||||
The user manual for linkwave.
|
||||
The user manual for markam.
|
||||
|
||||
Copyright @copyright{} 2012 Tom Willemsen
|
||||
|
||||
|
@ -27,8 +27,8 @@ The document was typeset with
|
|||
@end copying
|
||||
|
||||
@titlepage
|
||||
@title linkwave User Manual
|
||||
@subtitle The user manual for linkwave
|
||||
@title markam User Manual
|
||||
@subtitle The user manual for markam
|
||||
@author Tom Willemsen <tom@ryuslash.org>
|
||||
@page
|
||||
@vskip 0pt plus 1filll
|
||||
|
@ -40,14 +40,14 @@ The document was typeset with
|
|||
|
||||
@ifnottex
|
||||
@node Top, Usage, (dir), (dir)
|
||||
@top linkwave User Manual
|
||||
@top markam User Manual
|
||||
|
||||
@insertcopying
|
||||
@end ifnottex
|
||||
|
||||
@c Generate the nodes for this menu with `C-c C-u C-m'.
|
||||
@menu
|
||||
* Usage:: How to use linkwave
|
||||
* Usage:: How to use markam
|
||||
* Copying This Manual::
|
||||
* Index::
|
||||
@end menu
|
||||
|
@ -57,11 +57,11 @@ The document was typeset with
|
|||
@node Usage, Copying This Manual, Top, Top
|
||||
@chapter How to use
|
||||
|
||||
For the moment linkwave is a simple program, it has 2 functions. In
|
||||
For the moment markam is a simple program, it has 2 functions. In
|
||||
order to view a list of all your bookmarks you can use:
|
||||
|
||||
@example
|
||||
linkwave
|
||||
markam
|
||||
@end example
|
||||
|
||||
This will show the list of all stored bookmarks, showing the URL, name
|
||||
|
@ -70,7 +70,7 @@ and description. This list is unsorted and unpaged.
|
|||
The other function is to add a new bookmark, which can be done with:
|
||||
|
||||
@example
|
||||
linkwave http://example.org Example \
|
||||
markam http://example.org Example \
|
||||
"Some description about Example" \
|
||||
example some more tags
|
||||
@end example
|
||||
|
@ -80,7 +80,7 @@ name ``Example'', description ``Some description about Example'' and
|
|||
the tags ``example'', ``some'', ``more'' and ``tags''. Any arguments
|
||||
following the description will be considered tags.
|
||||
|
||||
For the moment linkwave is rather stupid, assuming that all URLs start
|
||||
For the moment markam is rather stupid, assuming that all URLs start
|
||||
with @code{http://} or @code{https://}, so other bookmarks can't be
|
||||
added (yet).
|
||||
|
||||
|
@ -103,4 +103,4 @@ added (yet).
|
|||
|
||||
@bye
|
||||
|
||||
@c linkwave.texi ends here
|
||||
@c markam.texi ends here
|
2
src/.gitignore
vendored
2
src/.gitignore
vendored
|
@ -1,3 +1,3 @@
|
|||
convert
|
||||
linkwave
|
||||
markam
|
||||
*.o
|
||||
|
|
|
@ -2,8 +2,8 @@ objects = paths.o common.o
|
|||
|
||||
.PHONY: all
|
||||
|
||||
all: linkwave convert
|
||||
linkwave: linkwave.scm $(objects)
|
||||
all: markam convert
|
||||
markam: markam.scm $(objects)
|
||||
csc $^ -o $@
|
||||
|
||||
convert: convert.scm $(objects)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; linkwave -- Store/retrieve/manage bookmarks
|
||||
;;; markam -- Store/retrieve/manage bookmarks
|
||||
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
|
||||
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
|
@ -26,5 +26,5 @@
|
|||
(define version "0.1.0")
|
||||
|
||||
(define (display-version)
|
||||
;; Display linkwave's version number.
|
||||
(format #t "linkwave v~a~%" version))
|
||||
;; Display markam's version number.
|
||||
(format #t "markam version ~a~%" version))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; linkwave -- Store/retrieve/manage bookmarks
|
||||
;;; markam -- Store/retrieve/manage bookmarks
|
||||
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
|
||||
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
|
@ -17,7 +17,7 @@
|
|||
;;; Commentary:
|
||||
|
||||
;; Convert any old database file to one usable with this version of
|
||||
;; linkwave. If you're just starting to use linkwave there should be
|
||||
;; markam. If you're just starting to use markam there should be
|
||||
;; no need to use this.
|
||||
|
||||
;;; Code:
|
||||
|
@ -31,7 +31,7 @@
|
|||
(define (blob->seconds blob)
|
||||
;; Convert BLOB to an integer representing the seconds since
|
||||
;; 01-01-1970 (standard unix timstamp). This has to be done because
|
||||
;; in the previous version of linkwave I stored the timestamp as a
|
||||
;; in the previous version of markam I stored the timestamp as a
|
||||
;; blob and CHICKEN doesn't seem to like blobs much.
|
||||
(if (u32vector? blob)
|
||||
(u32vector-ref (blob->u32vector blob) 0)
|
||||
|
@ -53,8 +53,8 @@
|
|||
(define (convert)
|
||||
;; Convert an old database into a new one and then replace the old
|
||||
;; with the new.
|
||||
(let ((old-db (open-database (data-file "linkwave.db")))
|
||||
(new-db (open-database (data-file "nlinkwave.db"))))
|
||||
(let ((old-db (open-database (data-file "linkwave.db" "linkwave")))
|
||||
(new-db (open-database (data-file "markam.db"))))
|
||||
(execute new-db "CREATE TABLE bookmark (url VARCHAR(255) UNIQUE, date INTEGER, name VARCHAR(255), description TEXT)")
|
||||
(execute new-db "CREATE TABLE tag (name VARCHAR(255) UNIQUE)")
|
||||
(execute new-db "CREATE TABLE bookmark_tag (bookmark_id INTEGER REFERENCES bookmark(rowid), tag_id INTEGER REFERENCES tag(rowid), PRIMARY KEY (bookmark_id, tag_id))")
|
||||
|
@ -75,12 +75,10 @@
|
|||
(first-result new-db "SELECT rowid FROM tag WHERE name = ?" tag)))
|
||||
"SELECT url, name FROM bookmark_tag JOIN tag ON (tag_id = tag.rowid)")
|
||||
|
||||
(rename-file (data-file "linkwave.db") (data-file "old-linkwave.db"))
|
||||
(rename-file (data-file "nlinkwave.db") (data-file "linkwave.db"))
|
||||
(format #t "Database converted.~%")))
|
||||
|
||||
(define (display-help)
|
||||
;; Display linkwave's help message.
|
||||
;; Display markam's help message.
|
||||
(format #t (string-append
|
||||
"Usage: convert [options]...~%"
|
||||
"~%"
|
||||
|
@ -93,9 +91,9 @@
|
|||
;; Convert an old database file unless a conversion database already
|
||||
;; exists.
|
||||
(if (null? args)
|
||||
(if (file-exists? (data-file "nlinkwave.db"))
|
||||
(format #t (string-append "Conversion database already exists. "
|
||||
"Something may have gone wrong during the last run~%"))
|
||||
(if (file-exists? (data-file "markam.db"))
|
||||
(format #t (string-append "Converted database already exists, or something may have gone "
|
||||
"wrong during the last run~%"))
|
||||
(convert))
|
||||
(do ((arg (car args) (and (not (null? args))
|
||||
(car args))))
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;;; linkwave -- Store/retrieve/manage bookmarks
|
||||
;;; markam -- Store/retrieve/manage bookmarks
|
||||
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
|
||||
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
|
@ -78,10 +78,10 @@
|
|||
(string= (substring str 0 8) "https://"))))
|
||||
|
||||
(define (display-help)
|
||||
;; Display linkwave's help message.
|
||||
;; Display markam's help message.
|
||||
(format #t (string-append
|
||||
"Usage: linkwave [options]...~%"
|
||||
" linkwave <url> <name> <description> [<tag>...]~%"
|
||||
"Usage: markam [options]...~%"
|
||||
" markam <url> <name> <description> [<tag>...]~%"
|
||||
"~%"
|
||||
"Possible options:~%"
|
||||
"~%"
|
||||
|
@ -91,7 +91,7 @@
|
|||
(define (main args)
|
||||
;; Open a database connection, do what the user asked and close it
|
||||
;; again.
|
||||
(let ((db (open-database (data-file "linkwave.db"))))
|
||||
(let ((db (open-database (data-file "markam.db"))))
|
||||
(if (null? args)
|
||||
(for-each-row print-row db "select * from bookmark")
|
||||
(if (url-string? (car args))
|
|
@ -1,4 +1,4 @@
|
|||
;;; linkwave -- Store/retrieve/manage bookmarks
|
||||
;;; markam -- Store/retrieve/manage bookmarks
|
||||
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
|
||||
|
||||
;; This program is free software: you can redistribute it and/or modify
|
||||
|
@ -22,25 +22,24 @@
|
|||
|
||||
(declare (unit paths))
|
||||
|
||||
(define (stored-file xdg-env file)
|
||||
;; Get FILE either from `XDG-ENV/linkwave/' or from
|
||||
;; `$HOME/.linkwave/'. Prefer any existing file over any other, but
|
||||
;; prefer files using XDG-ENV over `$HOME'.
|
||||
(let ((xdg (get-environment-variable xdg-env))
|
||||
(stored-file (string-append (get-environment-variable "HOME") "/.linkwave/" file)))
|
||||
(define (stored-file xdg-env file #!optional dir)
|
||||
;; Get FILE either from `XDG-ENV/markam/' or from `$HOME/.markam/'.
|
||||
;; Prefer any existing file over any other, but prefer files using
|
||||
;; XDG-ENV over `$HOME'.
|
||||
(let* ((xdg (get-environment-variable xdg-env))
|
||||
(dir (or dir "markam"))
|
||||
(stored-file (string-append (get-environment-variable "HOME") "/." dir "/" file)))
|
||||
(unless (or (file-exists? stored-file) (not xdg))
|
||||
(set! stored-file (string-append xdg "/linkwave/" file)))
|
||||
(set! stored-file (string-append xdg "/" dir "/" file)))
|
||||
stored-file))
|
||||
|
||||
(: config-file (string -> string))
|
||||
(define (config-file file)
|
||||
;; Use `stored-file' to get configuration file FILE. Configuration
|
||||
;; files are stored under `$XDG_CONFIG_HOME' if the XDG standard is
|
||||
;; used.
|
||||
(stored-file "XDG_CONFIG_HOME" file))
|
||||
|
||||
(: data-file (string -> string))
|
||||
(define (data-file file)
|
||||
(define (data-file file #!optional dir)
|
||||
;; Use `stored-file' to get data file FILE. Data files are stored
|
||||
;; under `$XDG_DATA_HOME' if the XDG standard is used.
|
||||
(stored-file "XDG_DATA_HOME" file))
|
||||
(stored-file "XDG_DATA_HOME" file dir))
|
||||
|
|
Loading…
Reference in a new issue