MCPcopy Index your code
hub / github.com/dokieli/dokieli

github.com/dokieli/dokieli @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,309 symbols 4,040 edges 116 files 6 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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:

License

Use

dokieli can be used as a:

  • single-page application - open any dokieli embedded article
  • browser extension - import dokieli from your Web browser's extensions (see also instructions.

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

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, view the authoring guidelines such as the ACM SIG Proceedings Paper using the LNCS Author Guidelines (typographical rules), and vice versa (see the dokieli menu) ;) More can be found in the dokieli themes repository.

Specifications

Supported By

  • NLnet (2024-02–present)

Support the project

Help the project grow by sponsoring it on Open Collective or reach out to us.

Contributors

Acknowledgements

The following organisations have supported a part of the research and development on dokieli:

We would also like to express our gratitude to the following individuals for their support:

Core symbols most depended-on inside this repo

sanitizeInsertAdjacentHTML
called by 110
src/utils/sanitization.js
get
called by 104
src/storage/backend.js
domSanitize
called by 97
src/utils/sanitization.js
getButtonHTML
called by 97
src/ui/buttons.js
fragmentFromString
called by 83
src/utils/html.js
getAttributes
called by 72
src/editor/schema/base.js
toDOMWith
called by 69
src/editor/schema/base.js
generateAttributeId
called by 38
src/util.js

Shape

Function 965
Method 306
Class 38

Languages

TypeScript100%

Modules by API surface

src/dialog.js130 symbols
src/doc.js122 symbols
src/storage/backend.js115 symbols
src/graph.js90 symbols
src/editor/toolbar/author/author.js64 symbols
src/cv.js57 symbols
src/editor/toolbar/toolbar.js54 symbols
src/editor/editor.js48 symbols
src/utils/html.js31 symbols
src/util.js31 symbols
src/viz.js30 symbols
src/uri.js29 symbols

For agents

$ claude mcp add dokieli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact