CiteIt Web Citation Service
The CiteIt Web Citation Service allows web authors to demonstrate the context of their quotations by helping them display the 500 characters of context before and after the quote they are citing.
Demo site with video:
- API Server: Python Flask Server
- Database: SQL Alchemy, (Postgres or Other Database)
- jQuery Library: custom function to wrap <blockquote< and <q> tags
- Wordpress Plugin: adds buttons to Wordpress editor. Submits pages to API.
How CiteIt Works:
An author notifies the CiteIt Web Service that they have created a new citation by sending a HTTP POST request with the URL of the author's page.
The CiteIt Web Service retrieves the author's page and locates all the citations within the document, saving the urls and the text of each citation.
The CiteIt web service retrieves the pages for each cited URL and compares the cited source text with the text from the author's citation.
If the service finds a match, it calculates the 500 characters before and after each quotation.
The CiteIt web service saves the 500 characters before and after each quotation to a json file and uploads each json file to the Amazon S3 Cloud.
After the author installs either the CiteIt Wordpress plugin or the CiteIt jQuery library on their site, the plugin instructs subsequent visitors to load the contextual json files from the Amazon S3 Cloud.
The CiteIt jQuery library, loads the contextual data from the json file into hidden <div> elements created in the author's page, which display when a reader clicks on an arrow above or below the quotation.
I got this idea in 2015, while I was writing an article about hypertext pioneer Ted Nelson.
Like the Web, CiteIt still follows the "Worse is Better" approach because I don't have the technical ability or resources to implement the "Right Thing".
I hope CiteIt allows more people to get a glimpse of Ted's original proposal and inspires other programmers to built towards that vision.
Akron, PA (USA)
I want this form of expanding contextual citation to become as widely adopted as possible, so I'm releasing it under the MIT License. I encourage you to build on top of my code. You don't have to contribute back to this project, but there are advantages to cooperation.
Earlier versions of this concept were written for: