Skip to content

linkeddata/dokieli

Repository files navigation

dokieli

dokieli is a clientside editor for decentralised article publishing, annotations, and social interactions.

It is built with the following principles in mind: freedom of expression, decentralisation, interoperability, and accessibility. There is no root, authority, or centralisation here. Control yourself!

Welcome! Check out the:

Use

dokieli can be used as a:

  • single-page application - open any dokieli embedded article
  • browser extension - import this repository in your Web browser or install Web Extension from Chrome Web Store or Add-ons for Firefox

Setup

Clone your work repository, for example:

git clone git@github.com:YOUR-USERNAME/dokieli
cd dokieli

Install packages:

yarn

Make your code updates at src/ , media/ etc.

Build eg. to create scripts/dokieli.js:

yarn build

or automatically rebuild when files change:

yarn watch

or create a minified scripts/dokieli.js:

yarn minify

To serve static files, you can use any HTTP server, e.g.:

npx serve

For more details on our development process, including tests and code quality guidelines, see our Contributing Guide

License

Documentation

  • For brave developers and authors: the canonical documentation explains dokieli's principles, architectural and design patterns.

Features

  • In-browser document authoring and formatting, and semantic enrichments (RDFa annotations).
  • Content negotiation is possible for RDFa, Turtle, JSON-LD, RDF/XML.
  • Uses author's information from their online profile (WebID).
  • Creation of new documents from any existing dokieli document - part of self-replication.
  • Save document and its dependencies to a new location (anywhere on the Web given access) - part of self-replication.
  • Open and edit URLs containing HTML.
  • Individually assign the language of articles and annotations and parts within.
  • Assignment of URI fragments (to any unit of significance) so that other resources on the Web can link to it.
  • Implements versioning and has the notion of immutable resources.
  • Embedding data blocks, e.g., Turtle, N-Triples, JSON-LD, TriG (Nanopublications).
  • Embedding of media objects, tables, and interactions.
  • Graph visualisation of linked data.
  • Import GPX and extension data and view tracks on map.
  • Automated references and citations (retrieves and reuses structured information).
  • Insertion of table of contents, figures, tables, abbreviations.
  • Drag and drop to reorganize the document's sections and table of contents.
  • In-browser local storage, and document exporting.
  • Message log.
  • Document metadata.
  • Views for screen and print (e.g., ACM, LNCS) - yes, you can output to a paper user interface: PDF
  • .. and many more on the way.

Let's make it so together! You are welcome to create issues, discuss, or pull requests.

Screencasts

Examples

See the growing list of examples in the wild. Add the URLs of your articles or interactions to the list.

This repository is published and accessible from https://dokie.li/. dokie.li is intended to demo and exemplify what we can do with this technology. You are welcome to use and experiment with dokieli there, or anywhere else you come across a dokieli document.

For the scholars among us, see the authoring guidelines below. View the ACM SIG Proceedings Paper using the LNCS Author Guidelines (typographical rules), and vice versa (see the menu) ;)

Specifications

Supported By

Contributors