Rename linkwave to markam

This commit is contained in:
Tom Willemsen 2012-12-29 16:54:16 +01:00
parent f379783d28
commit b467939385
11 changed files with 78 additions and 84 deletions

View file

@ -1,4 +1,7 @@
.PHONY: all dirs = src doc
all: .PHONY: all $(dirs)
$(MAKE) -C src/
all: $(dirs)
$(dirs):
$(MAKE) -C $@

View file

@ -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 Collects bookmarks.
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.

View file

@ -1,4 +1,4 @@
/* linkwave -- Store/retrieve/manage bookmarks /* markam -- Store/retrieve/manage bookmarks
Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org> Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
@ -17,16 +17,16 @@
/// Commentary: /// Commentary:
// A wrapper script that should allow conkeror to interface with // A wrapper script that should allow conkeror to interface with
// linkwave. Does not yet allow searching through collected // markam. Does not yet allow searching through collected bookmarks,
// bookmarks, only adding new ones. // only adding new ones.
/// Code: /// Code:
define_variable("linkwave_program", "linkwave", define_variable("markam_program", "markam",
"The location of the linkwave executable."); "The location of the markam executable.");
function linkwave_add_url(I, url, title) function markam_add_url(I, url, title)
{ // Add URL to linkwave, ask for a title (provide TITLE as a { // Add URL to markam, ask for a title (provide TITLE as a
// default), description and any number of tags. // default), description and any number of tags.
let url_string = load_spec_uri_string(load_spec(url)); let url_string = load_spec_uri_string(load_spec(url));
let title = yield I.minibuffer.read($prompt="name (required): ", 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( let tags = yield I.minibuffer.read(
$prompt="tags (comma delimited): " $prompt="tags (comma delimited): "
); );
let command = linkwave_program + ' "' + url_string + '" "' + title let command = markam_program + ' "' + url_string + '" "' + title
+ '" "' + description + '" \'' + '" "' + description + '" \''
+ tags.split(',').map(function (str) + tags.split(',').map(function (str)
{ return str.trim(); }).join("' '") { return str.trim(); }).join("' '")
@ -45,33 +45,33 @@ function linkwave_add_url(I, url, title)
yield shell_command(command); yield shell_command(command);
} }
function linkwave_add(I) { function markam_add(I) {
check_buffer(I.buffer, content_buffer); 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); I.buffer.title);
if (!result) if (!result)
I.window.minibuffer.message('Added to linkwave'); I.window.minibuffer.message('Added to markam');
else else
I.window.minibuffer.message('Couldn\'t add to linkwave'); I.window.minibuffer.message('Couldn\'t add to markam');
} }
interactive("linkwave-add", interactive("markam-add",
"Bookmark the current page in linkwave", "Bookmark the current page in markam",
linkwave_add); markam_add);
function linkwave_add_link(I) { function markam_add_link(I) {
check_buffer(I.buffer, content_buffer); check_buffer(I.buffer, content_buffer);
bo = yield read_browser_object(I); 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); bo.textContent);
if (!result) if (!result)
I.window.minibuffer.message('Added to linkwave'); I.window.minibuffer.message('Added to markam');
else else
I.window.minibuffer.message('Couldn\'t add to linkwave'); I.window.minibuffer.message('Couldn\'t add to markam');
} }
interactive("linkwave-add-link", interactive("markam-add-link",
"Select and bookmark a link in linkwave", "Select and bookmark a link in markam",
linkwave_add_link); markam_add_link);
provide("linkwave"); provide("markam");

View file

@ -1,4 +1,4 @@
.PHONY: all .PHONY: all
all: linkwave.info all: markam.info
linkwave.info: linkwave.texi markam.info: markam.texi

View file

@ -1,10 +1,10 @@
\input texinfo @c -*-texinfo-*- \input texinfo @c -*-texinfo-*-
@c %**start of header @c %**start of header
@setfilename linkwave.info @setfilename markam.info
@settitle linkwave User Manual @settitle markam User Manual
@c %**end of header @c %**end of header
@copying @copying
The user manual for linkwave. The user manual for markam.
Copyright @copyright{} 2012 Tom Willemsen Copyright @copyright{} 2012 Tom Willemsen
@ -27,8 +27,8 @@ The document was typeset with
@end copying @end copying
@titlepage @titlepage
@title linkwave User Manual @title markam User Manual
@subtitle The user manual for linkwave @subtitle The user manual for markam
@author Tom Willemsen <tom@ryuslash.org> @author Tom Willemsen <tom@ryuslash.org>
@page @page
@vskip 0pt plus 1filll @vskip 0pt plus 1filll
@ -40,14 +40,14 @@ The document was typeset with
@ifnottex @ifnottex
@node Top, Usage, (dir), (dir) @node Top, Usage, (dir), (dir)
@top linkwave User Manual @top markam User Manual
@insertcopying @insertcopying
@end ifnottex @end ifnottex
@c Generate the nodes for this menu with `C-c C-u C-m'. @c Generate the nodes for this menu with `C-c C-u C-m'.
@menu @menu
* Usage:: How to use linkwave * Usage:: How to use markam
* Copying This Manual:: * Copying This Manual::
* Index:: * Index::
@end menu @end menu
@ -57,11 +57,11 @@ The document was typeset with
@node Usage, Copying This Manual, Top, Top @node Usage, Copying This Manual, Top, Top
@chapter How to use @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: order to view a list of all your bookmarks you can use:
@example @example
linkwave markam
@end example @end example
This will show the list of all stored bookmarks, showing the URL, name 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: The other function is to add a new bookmark, which can be done with:
@example @example
linkwave http://example.org Example \ markam http://example.org Example \
"Some description about Example" \ "Some description about Example" \
example some more tags example some more tags
@end example @end example
@ -80,7 +80,7 @@ name ``Example'', description ``Some description about Example'' and
the tags ``example'', ``some'', ``more'' and ``tags''. Any arguments the tags ``example'', ``some'', ``more'' and ``tags''. Any arguments
following the description will be considered tags. 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 with @code{http://} or @code{https://}, so other bookmarks can't be
added (yet). added (yet).
@ -103,4 +103,4 @@ added (yet).
@bye @bye
@c linkwave.texi ends here @c markam.texi ends here

2
src/.gitignore vendored
View file

@ -1,3 +1,3 @@
convert convert
linkwave markam
*.o *.o

View file

@ -2,8 +2,8 @@ objects = paths.o common.o
.PHONY: all .PHONY: all
all: linkwave convert all: markam convert
linkwave: linkwave.scm $(objects) markam: markam.scm $(objects)
csc $^ -o $@ csc $^ -o $@
convert: convert.scm $(objects) convert: convert.scm $(objects)

View file

@ -1,4 +1,4 @@
;;; linkwave -- Store/retrieve/manage bookmarks ;;; markam -- Store/retrieve/manage bookmarks
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org> ;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
;; This program is free software: you can redistribute it and/or modify ;; This program is free software: you can redistribute it and/or modify
@ -26,5 +26,5 @@
(define version "0.1.0") (define version "0.1.0")
(define (display-version) (define (display-version)
;; Display linkwave's version number. ;; Display markam's version number.
(format #t "linkwave v~a~%" version)) (format #t "markam version ~a~%" version))

View file

@ -1,4 +1,4 @@
;;; linkwave -- Store/retrieve/manage bookmarks ;;; markam -- Store/retrieve/manage bookmarks
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org> ;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
;; This program is free software: you can redistribute it and/or modify ;; This program is free software: you can redistribute it and/or modify
@ -17,7 +17,7 @@
;;; Commentary: ;;; Commentary:
;; Convert any old database file to one usable with this version of ;; 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. ;; no need to use this.
;;; Code: ;;; Code:
@ -31,7 +31,7 @@
(define (blob->seconds blob) (define (blob->seconds blob)
;; Convert BLOB to an integer representing the seconds since ;; Convert BLOB to an integer representing the seconds since
;; 01-01-1970 (standard unix timstamp). This has to be done because ;; 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. ;; blob and CHICKEN doesn't seem to like blobs much.
(if (u32vector? blob) (if (u32vector? blob)
(u32vector-ref (blob->u32vector blob) 0) (u32vector-ref (blob->u32vector blob) 0)
@ -53,8 +53,8 @@
(define (convert) (define (convert)
;; Convert an old database into a new one and then replace the old ;; Convert an old database into a new one and then replace the old
;; with the new. ;; with the new.
(let ((old-db (open-database (data-file "linkwave.db"))) (let ((old-db (open-database (data-file "linkwave.db" "linkwave")))
(new-db (open-database (data-file "nlinkwave.db")))) (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 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 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))") (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))) (first-result new-db "SELECT rowid FROM tag WHERE name = ?" tag)))
"SELECT url, name FROM bookmark_tag JOIN tag ON (tag_id = tag.rowid)") "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.~%"))) (format #t "Database converted.~%")))
(define (display-help) (define (display-help)
;; Display linkwave's help message. ;; Display markam's help message.
(format #t (string-append (format #t (string-append
"Usage: convert [options]...~%" "Usage: convert [options]...~%"
"~%" "~%"
@ -93,9 +91,9 @@
;; Convert an old database file unless a conversion database already ;; Convert an old database file unless a conversion database already
;; exists. ;; exists.
(if (null? args) (if (null? args)
(if (file-exists? (data-file "nlinkwave.db")) (if (file-exists? (data-file "markam.db"))
(format #t (string-append "Conversion database already exists. " (format #t (string-append "Converted database already exists, or something may have gone "
"Something may have gone wrong during the last run~%")) "wrong during the last run~%"))
(convert)) (convert))
(do ((arg (car args) (and (not (null? args)) (do ((arg (car args) (and (not (null? args))
(car args)))) (car args))))

View file

@ -1,4 +1,4 @@
;;; linkwave -- Store/retrieve/manage bookmarks ;;; markam -- Store/retrieve/manage bookmarks
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org> ;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
;; This program is free software: you can redistribute it and/or modify ;; This program is free software: you can redistribute it and/or modify
@ -78,10 +78,10 @@
(string= (substring str 0 8) "https://")))) (string= (substring str 0 8) "https://"))))
(define (display-help) (define (display-help)
;; Display linkwave's help message. ;; Display markam's help message.
(format #t (string-append (format #t (string-append
"Usage: linkwave [options]...~%" "Usage: markam [options]...~%"
" linkwave <url> <name> <description> [<tag>...]~%" " markam <url> <name> <description> [<tag>...]~%"
"~%" "~%"
"Possible options:~%" "Possible options:~%"
"~%" "~%"
@ -91,7 +91,7 @@
(define (main args) (define (main args)
;; Open a database connection, do what the user asked and close it ;; Open a database connection, do what the user asked and close it
;; again. ;; again.
(let ((db (open-database (data-file "linkwave.db")))) (let ((db (open-database (data-file "markam.db"))))
(if (null? args) (if (null? args)
(for-each-row print-row db "select * from bookmark") (for-each-row print-row db "select * from bookmark")
(if (url-string? (car args)) (if (url-string? (car args))

View file

@ -1,4 +1,4 @@
;;; linkwave -- Store/retrieve/manage bookmarks ;;; markam -- Store/retrieve/manage bookmarks
;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org> ;; Copyright (C) 2012 Tom Willemsen <tom at ryuslash dot org>
;; This program is free software: you can redistribute it and/or modify ;; This program is free software: you can redistribute it and/or modify
@ -22,25 +22,24 @@
(declare (unit paths)) (declare (unit paths))
(define (stored-file xdg-env file) (define (stored-file xdg-env file #!optional dir)
;; Get FILE either from `XDG-ENV/linkwave/' or from ;; Get FILE either from `XDG-ENV/markam/' or from `$HOME/.markam/'.
;; `$HOME/.linkwave/'. Prefer any existing file over any other, but ;; Prefer any existing file over any other, but prefer files using
;; prefer files using XDG-ENV over `$HOME'. ;; XDG-ENV over `$HOME'.
(let ((xdg (get-environment-variable xdg-env)) (let* ((xdg (get-environment-variable xdg-env))
(stored-file (string-append (get-environment-variable "HOME") "/.linkwave/" file))) (dir (or dir "markam"))
(stored-file (string-append (get-environment-variable "HOME") "/." dir "/" file)))
(unless (or (file-exists? stored-file) (not xdg)) (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)) stored-file))
(: config-file (string -> string))
(define (config-file file) (define (config-file file)
;; Use `stored-file' to get configuration file FILE. Configuration ;; Use `stored-file' to get configuration file FILE. Configuration
;; files are stored under `$XDG_CONFIG_HOME' if the XDG standard is ;; files are stored under `$XDG_CONFIG_HOME' if the XDG standard is
;; used. ;; used.
(stored-file "XDG_CONFIG_HOME" file)) (stored-file "XDG_CONFIG_HOME" file))
(: data-file (string -> string)) (define (data-file file #!optional dir)
(define (data-file file)
;; Use `stored-file' to get data file FILE. Data files are stored ;; Use `stored-file' to get data file FILE. Data files are stored
;; under `$XDG_DATA_HOME' if the XDG standard is used. ;; under `$XDG_DATA_HOME' if the XDG standard is used.
(stored-file "XDG_DATA_HOME" file)) (stored-file "XDG_DATA_HOME" file dir))