Simple Citation
From Open Source@Seneca
Contents |
Project Name
Simple Citation
Project Description
The goal of this project is to create a Firefox extension that will allow citations to be easily generated. This is an excellent project if your interested in learning the in's and out's of extension development. Please contact me if you want to contribute to this project.
Project Leader(s)
Project Contributor(s)
- Mohammad Tirtashi
- Vanessa Miranda
- Jeff Mossop
- Paul St-Denis
- Dave Humphrey
- Tom Aratyn
- Eva Or
- Michael Lau
- Liz Chak
Project Details
Simple Citation Version History
Main Goals
| Task | Assigned To | Priority | Status |
|---|---|---|---|
|
Allow for the generation of citations for various formats on the Internet. |
philly | High | Complete. |
|
Provide Right-click and Tools menu options for generating citations. |
philly | High | Complete. |
|
Allow for results to be saved to the system clipboard. |
philly | High | Complete. |
|
Understand the implementation and delivery of locales within extensions. |
philly | High | Complete. |
|
Understand the development and deployment of Firefox extensions |
philly | High | Complete. |
Version 1.1.2 TODO List
Status: N/A
| Task | Assigned To | Priority | Status |
|---|---|---|---|
|
Add language support for Portuguese. |
Vanessa | Low | Complete. |
Version 1.2 TODO List
Status: N/A
| Task | Assigned To | Priority | Status |
|---|---|---|---|
|
Develop an algorithm that will break down a website and try to locate all citation information. This algorithm should only add data to a citation if it is 100% sure that the information is correct. All search criteria would have to be based on a predefined rule set. i.e. If an author name was found because the words "By:" beside it. |
TBA | Low | N/A |
|
Add Simple Citation to the mozilla extension website. |
N/A | Low | N/A |
|
Redesign the interface to allow for citation attributes to be entered through text fields. These fields should dynamically change depending on the selected format. An implementation mock up will soon be provided. |
N/A | Medium | N/A |
|
Modify the history system to include the following new functionalities:
|
N/A | Medium | N/A |
|
Update all supported languages. |
N/A | Medium | To be completed in the final stages of this version. |
Project Output
Screenshots
Main Window
History Window
Generation Results
- APA -> Stand-alone Documents
Google. Retrieved October 13, 2006, from http://www.google.ca/
- CBE -> Personal Website
<authorName(s)>. <publicationDate>. <articleTitle>. <http://www.google.ca/>. Accessed Dec 9, 2006.
- Chicago -> Website
<authorName(s)>. <publicationDate>. <articleTitle>. <publisherName>. http://www.google.ca/ (accessed December 9, 2006).
- MLA -> Website
<authorName(s)>. "<articleTitle>." <bookTitle>. <publisherDate>. <publisherName>. <publicationDate> <http://www.google.ca/>.
Project Tree
The following tree snapshot was taken after the release of Simple Citation 1.1.1:
|-- branches
| |-- simple-citation-1.0.1-branch
| | |-- Install.js
| | |-- chrome
| | | |-- content
| | | | |-- contents.rdf
| | | | |-- simpleCitationGenerate.js
| | | | |-- simpleCitationGenerate.xul
| | | | |-- simpleCitationOverlay.js
| | | | `-- simpleCitationOverlay.xul
| | | `-- locale
| | | `-- en-US
| | | `-- simplecitation
| | | |-- contents.rdf
| | | `-- simplecitation.dtd
| | |-- chrome.manifest
| | |-- install.rdf
| | `-- {F344D2A3-9FAA-4a12-8254-46E5F0C57846}
| `-- simple-citation-1.1-branch
| |-- Install.js
| |-- chrome
| | |-- content
| | | |-- contents.rdf
| | | |-- simpleCitationFormat.js
| | | |-- simpleCitationGenerate.js
| | | |-- simpleCitationGenerate.xul
| | | |-- simpleCitationHistory.js
| | | |-- simpleCitationHistory.xul
| | | |-- simpleCitationIO.js
| | | |-- simpleCitationOverlay.js
| | | `-- simpleCitationOverlay.xul
| | |-- locale
| | | |-- en-US
| | | | `-- simplecitation
| | | | |-- contents.rdf
| | | | |-- simplecitation.dtd
| | | | `-- simplecitation.properties
| | | |-- es-VE
| | | | `-- simplecitation
| | | | |-- contents.rdf
| | | | |-- simplecitation.dtd
| | | | `-- simplecitation.properties
| | | |-- fr-FR
| | | | `-- simplecitation
| | | | |-- contents.rdf
| | | | |-- simplecitation.dtd
| | | | `-- simplecitation.properties
| | | |-- ms-MY
| | | | `-- simplecitation
| | | | |-- contents.rdf
| | | | |-- simplecitation.dtd
| | | | `-- simplecitation.properties
| | | |-- zh-CN
| | | | `-- simplecitation
| | | | |-- contents.rdf
| | | | |-- simplecitation.dtd
| | | | `-- simplecitation.properties
| | | `-- zh-TW
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | `-- skin
| | |-- SCIcon.png
| | `-- citation.css
| |-- chrome.manifest
| |-- defaults
| | `-- preferences
| | `-- simplecitation.js
| |-- install.rdf
| `-- {F344D2A3-9FAA-4a12-8254-46E5F0C57846}
|-- build
| |-- previous_releases
| | |-- simpleCitation-1-0-1.xpi
| | `-- simpleCitation-1-1.xpi
| |-- simpleCitation.xpi
| |-- update.rdf
| `-- versionlog.txt
`-- trunk
|-- Install.js
|-- chrome
| |-- content
| | |-- contents.rdf
| | |-- simpleCitationFormat.js
| | |-- simpleCitationGenerate.js
| | |-- simpleCitationGenerate.xul
| | |-- simpleCitationHistory.js
| | |-- simpleCitationHistory.xul
| | |-- simpleCitationIO.js
| | |-- simpleCitationOverlay.js
| | `-- simpleCitationOverlay.xul
| |-- locale
| | |-- en-US
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | |-- es-VE
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | |-- fr-FR
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | |-- ms-MY
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | |-- zh-CN
| | | `-- simplecitation
| | | |-- contents.rdf
| | | |-- simplecitation.dtd
| | | `-- simplecitation.properties
| | `-- zh-TW
| | `-- simplecitation
| | |-- contents.rdf
| | |-- simplecitation.dtd
| | `-- simplecitation.properties
| `-- skin
| |-- SCIcon.png
| `-- citation.css
|-- chrome.manifest
|-- defaults
| `-- preferences
| `-- simplecitation.js
|-- install.rdf
`-- {F344D2A3-9FAA-4a12-8254-46E5F0C57846}
Project News
- December 9th, 2006 - Updated the project page. The following tasks were accomplished:
- Added screenshots and generation results to the project output section.
- Finalized the 1.1 tasks table.
- Created the 1.1.1 tasks table to include tasks and soon to be found bugs that were not fixed.
- Created the 1.2 tasks table for future planning of Simple Citation.
UPDATE: 7:15PM - Released version 1.1.1! See the Version log for details.
- Moved the original 1.1.1 tasks table to 1.1.2
- Added a Release Information section that explains the Simple Citation release process.
- Added a "how to get involved section" for future development.
UPDATE: 9:50PM - Added language support for Portuguese. Thanks Vanessa! This localization will be supported in the 1.1.2 release.
- December 8th, 2006 - Released version 1.1! See the Version log for details. Thanks to everyone who contributed to Simple Citation!
- Added GPL license to project files. (Thanks Tom)
- Added Chinese support (Traditional and Simple). (Thanks Eva)
- Fixed a bug with localization files and Firefox. All dtd and properties files were encoded using ANSI. Thanks to the crew at #extdev, they informed me that these files should be encoded using UTF8.
- Updated the update.rdf at http://www.philv.com/simplecitation/build/. Future updates will now be automatically updated.
- Created the 1.1 xpi.
- Update the Version log.
- December 7th, 2006 - Added language support for Malay (Bahasa Melayu). Thanks Liz!
- December 4th, 2006 - Added French localization support (Thanks Paul) and a confirmation box to the clear history function.
- December 3rd, 2006 - The History component is now complete. Thanks Moe. I've also added Mike Lau and Liz to do some translations. The AI for generating citations has been bumped to version 1.2.
- November 26th, 2006 - All formats now work on the 1.1 branch. An icon can now be added to the Firefox toolbar.
- November 24th, 2006 - Paul showed me how to use preferences in extensions by creating a simple javascript file. Code was later created to access the values within this file. Paul also explained to me how values are stored in extensions through about:config. I'm currently implementing the ability to store the current format by using preferences.
- UPDATE - I've updated the website with a new table that depicts the current progress of each task. I've also added a bunch of new tasks to version 1.1. The first task is a history component that will keep track of all citations generated, which will be developed by Moe. Secondly, I completely forgot about licensing, so I've added a task for this as well. If anyone wishes to take on this task, please let me know. (hint contributions hint ;)) Next, I added an icon creation task for Firefox's menu bar's, which has been assigned to Jeff. Finally, I've added Vanessa and Paul to do some translations once the localization files have been finalized. If anyone wants to do translations on any language not specified in the table above, please contact me. No more tasks will be added to version 1.1, but if you have any idea's for future releases please let me know.
- In regards to the code, it should be easier to work with now as I've placed everything into proper objects (i hope). A preferences file has also been created and is currently being used to stored the last used format when generating a citation. (thanks paul!) Finally, I've added formatting for MLA stand alone websites. All of these changes can be seen by downloading the 1.1 branch as described in the Project Download section below.
- My goal (since were out of time) for version 1.1 is to have it released in 10 days.
--Pcvitori 23:48, 24 November 2006 (EST)
- November 11th, 2006 - The following tasks were accomplished today on the 1.1 branch:
- Converted the main dialog into a window.
- Implemented a properties file that contains all static data from the js files.
- Refactored a whole lot of code to prepare for the implementation of the citation formats.
- Added a status bar that will display the current format being used.
- A bug currently exists with the layout of the main window. I wouldn't get resizing to properly work once i added the statusbar element. If anyone is good at XUL, download the following branch and send me a patch. :) You'll be rewarded of course.
- A few days ago, Tom located an error within one of my RDF files. This issue has been resolved.
- November 9th, 2006 - Created Format Menu structure for the extension and began coding formatting options.
- October 29th, 2006 - Researched various citation methods and began planning an enhancement for version 1.0.1. Dave directed me to an existing extension called zotero, which manages various references. I am currently in the process of understanding and utilizing this extension. I am also currently trying to figure out XUL code that will create a menu hierarchy as stated above. This menu must be displayed as a popmenu when a button is clicked. If anyone knows how to accomplish this, please leave me some feedback in the discussion page.
- October 13th, 2006 - Created version 1.0.1 See the Version log file for details.
- October 10th, 2006 - Created version 1.0
Version Log:
* Added generation options to Right-click and the Tools menu. * Added Dialog box. * Added the ability to save results to the clipboard.
Project Download
The latest XPI file can be found here.
Project Source
Archive
Download the latest source zip here.
SVN
The source code for the most current version can be downloaded by using following command:
svn checkout http://www.philv.com/simplecitation/trunk/
The whole simple citation repository can be checked out by using the following command:
svn checkout http://www.philv.com/simplecitation/
Project Development
Setup Instructions
- Make sure that any previous versions of Simple Citation are uninstalled from the Firefox profile that you will be developing on.
- Download the project. See the Project Download section above for details.
- Within the base folder of the Simple Citation folder hierarchy, there is a file called {F344D2A3-9FAA-4a12-8254-46E5F0C57846}.txt. Open this file and change the directory location to the current location of the Simple Citation repository.
- Save and copy this file to the extensions directory for Firefox. In Windows XP, this is located at C:\Documents and Settings\windowsUsername\Application Data\Mozilla\Firefox\Profiles\yourProfile\extensions\
Release Information
The following is a list of instructions that should guide you in the release process of Simple Citation. Refer to the Project Tree for more information on the location of files within the Simple Citation repository.
- Checkout the whole Simple Citation repository. See the project download section for details.
- Make sure the version numbers are set to the current release number in the following files:
- Install.js
- install.rdf
- chrome/content/contents.rdf
- Add to the versionlog.txt file within repository the changes that have been made in the version being released. This file is located at: simplecitation/build/versionlog.txt
- In the build/ folder, copy the existing simpleCitation.xpi to the previous_versions folder.
- In the build/previous_versions/ folder, rename simpleCitation.xpi to simpleCitation-VERSIONNUMBER.xpi. The VERSIONNUMBER is the current version number being released. After the file is renamed, add it to the repository using the svn add command.
- In the build/ folder, edit the update.rdf file and change the version number to the current version number being released.
- Export the trunk to a folder of your choice using the following command:
svn export http://www.philv.com/simplecitation/trunk/
- Within the root folder of the exported version of Simple Citation, complete the following tasks:
- In the chrome folder, zip all the folders into a file called simplecitation.jar
- Remove the following file: {F344D2A3-9FAA-4a12-8254-46E5F0C57846}
- Add the versionlog.txt file.
- Edit the chrome.manifest file to point to the simplecitation.jar file. The following is a template of how this is done:
content simplecitation jar:chrome/simplecitation.jar!/content/ overlay chrome://navigator/content/navigatorOverlay.xul chrome://simplecitation/content/simpleCitationOverlay.xul overlay chrome://browser/content/browser.xul chrome://simplecitation/content/simpleCitationOverlay.xul locale simplecitation en-US jar:chrome/simplecitation.jar!/locale/en-US/simplecitation/ locale simplecitation fr-FR jar:chrome/simplecitation.jar!/locale/fr-FR/simplecitation/ locale simplecitation ms-MY jar:chrome/simplecitation.jar!/locale/ms-MY/simplecitation/ locale simplecitation es-VE jar:chrome/simplecitation.jar!/locale/es-VE/simplecitation/ locale simplecitation zh-CN jar:chrome/simplecitation.jar!/locale/zh-CN/simplecitation/ locale simplecitation zh-TW jar:chrome/simplecitation.jar!/locale/zh-TW/simplecitation/ style chrome://global/content/customizeToolbar.xul chrome://simplecitation/skin/citation.css skin simplecitation classic/1.0 jar:chrome/simplecitation.jar!/skin/
- Select all of the files within the root folder and zip them into a file called: simpleCitation.xpi
- TEST TEST TEST the newly created simpleCitaton.xpi file in Firefox. Make sure that no functionality was broken in the release.
- Copy this newly created simpleCitation.xpi file to the build/ folder within Simple Citation repository checked out earlier.
- Delete the exported version of the Simple Citation repository.
- Finally, commit all the new changes to the Simple Citation repository.
Project Involvement
Do you have a cool idea for a feature in Simple Citation? Interested in working on an unassigned task? Have you found a bug and want to work on a resolution? Do you want to see your language supported?
Getting involved with Simple Citation is a great way to learn the various aspects of extension development. The easiest way to get involved in this project is to leave me a message in the discussion section of this page. In your post simply describe the task or goal you want to accomplish in this project, and a communication medium so that i may contact you (email preferably).


