DokuWiki

It's better when it's simple

User Tools

Site Tools


plugin:dokubookmark

This is an old revision of the document!


dokubookmark plugin

Compatible with DokuWiki

Devel only

plugin bookmarklet to submit content to DokuWiki

Last updated on
2008-09-30
Provides
Helper, Action

Tagged with blog, bookmark, create

Download dokubookmark.zip

Usage

dokubookmark offers an easy way to submit new pages to DokuWiki: Simply add the Bookmarklet below to your browser bookmarks.

  1. visit any website (that you may want to bookmark or write about)
  2. [optionally] select some text. (select a single-word: title, select multiple words: description)
  3. activate the “Bookmarklet” → Popup browser window.
  4. [optionally] add a custom description, article, tags or notes.
  5. preview, fill in CAPTCHA (or log-in) and save

This plugin was inspired by the tips section's weblog_bookmarklet article - thanks to Riny.

dokubookmark includes tag-plugin support to easily and quickly tag pages. However the current schema is not suitable for large tag lists. Using the tag-cloud may be nice. Yet more brainstorm and discussion is needed; have fun.

Setup

Just install the plugin, the default settings will do, but you may want to tweak them to your preferences.

Config

They're documented - use DokuWiki's Configuration panel.

config-key default-value description
default namespace wiki:weblog:@D@ where to save new pages
Namespace Presets Private=weblog:@D@;Public=wik..1) flexible version of the above. allows to specify multiple namespaces and custom templates
Date-time format Y:m_d_His how to format timestamps
Note: timestamps (@D@) can be used for wiki-page names; a colon separates namespaces.
tagbox 1 on/off - show available tags - requires the tag plugin
tabboxtable 1 on/off - if showing tags, put them in a HTML table
wikitemplate 2) the fallback page-template that is used if no other templates have been specified/found

Placeholders (replaced in wiki-page-name and wiki-page-template:

  • @T@ - title of the bookmarked page (as shown in browser title bar)
  • @U@ - the URL of the page to bookmark
  • @D@ - timestamp, now
  • @S@ - text that was selected.
  • @F@ - foo - the user who is making the change or 'anonymous'
  • @N@ - title/page-name. Identical to@S if it is a single word, otherwise @T@. In both cases the value is stripped of non-alphanumerical characters and space is replaced with underscore.

If a _template.txt exists in the namespace of the page, the default DokuWiki placeholders (@PAGE@, etc ) are also available for those wiki-pages.

Notes: Tags are optional (requires the DokuWiki tag plugin). Presets come in handy to quickly change the namespace or apply templates.

Direct-saving can be enabled in the configuration, it is identical to DokuWiki save (it even checks sectok). It is intended to close the popup-window after a successful save (it does not yet) or redirect the user to edit/preview/draft-merge if some concurrency or permission error occurs.

Bookmarklet

Bookmarklets are smart bookmarks. They usually allow one to perform complex task via a single click (web-browser bookmark-toolbar).

Add a new bookmark in your browser with the Location text below. Adjust the hostname and protocol to match your DokuWiki server's host-name.

javascript:Q=document.selection?document.selection.createRange().text:document.getSelection();void(window.open('http://MY-HOST-NAME/doku.php?do=dokubookmark&te='+escape(Q)+'&ur='+escape(location.href)+'&ti='+escape(document.title),'dokuwikiadd','scrollbars=yes,resizable=yes,toolbars=yes,width=680,height=520,left=210,top=150,status=yes'));

Discussion

Any help to improve this plugin is welcome. Feel free to discuss here or drop us a line, contact info comes with the source.

Background information (JavaScript POSTing to DokuWiki) and a development version can be found here and here. A deployed dokubookmark is online at apps.linuxaudio.org.

–robin & Riny

tip: From version 0.3.7 (to be released) you can include the username in the path, which if combined with the Arctic template and the pagelist plugin, to give every user his own weblog-entry sidebar.

suggestion for future release Option to disable “show up in 'recent changes'” to prevent clutter up. Could be done by marking as “Minor edit” and skip minor edits in “recent changes”

robin suggests to leave the changelog alone and use a customized page-list plugin.

what do you need? “a global changelog without the bookmarks” may translate into a namespace-white/blacklisted changelog or index. Maybe there's an existing solution available, the most close I could find quickly was userhistory, recent and editor.

BTW. I use a patched version of the dir plugin to show ~~META:url=<URL>~~ of each page in a namespace-list (and use ~~META:url=@U@~~ in the bookmark-template). I'm currently pondering how to best integrate this with other modules. The include plugin and friends may also be an option.

The plugin doesn't handle international utf8 characters in title,selection.Change escape() to encodeURI() in bookmarklet ,use utf8_unhtml around line 129 action.php,add (,ENT_COMPAT,'UTF-8') in htmlentities calls @ printForm @ helper.php

psofa email:psofa <dot> <part before dot again> at gmail

Its me again :) The plugin seemed to depend on pages being created for each tag ( i suppose the tag plugin behaved like this at some point ) in order to create the tag table. If you have the cloud plugin you can replace the _gettags() function with

 function _gettags() {
    $tag = plugin_load('helper', 'tag');
    $cloudpl = plugin_load('syntax','cloud');
    $cloud = $cloudpl->_getTagCloud(50, $min, $max, $tag);
    $taglist=array();
    foreach ($cloud as $word => $size) {$taglist[]=$word;};
    return($taglist);
  }

psofa email:psofa <dot> <part before dot again> at gmail

1) , 2)
too long to post here
plugin/dokubookmark.1286714502.txt.gz · Last modified: 2010-10-10 14:41 by lupo49

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki