Oh wow, thank you for such a great reply. I'm going to give these a try and report back. many thanks again!
On Sep 19, 9:42 am, David Karger <[email protected]> wrote: > Here are four answers. I'm afraid the third is a little involved since > you're trying to jump deep into the exhibit processing pipeline. > > 1. to just preprocess the google spreadsheet into a normal json file > for exhibit, you can just make a static exhibit somewhere else that > loads the data from the spreadsheet, then use exhibit's data export > functionality (activated by clicking the orange scissors that appear > when you hover over the data in the page) to copy out the same data in > exhibit json format. > > 2. If you want to access the spreadsheet data "live", perhaps you > canput some javascript in your page that inserts the <link> tag exhibit > wants into the head _after_ you're CMS has finished parsing the head > (so it won't see and complain about the link) but _before_ executing > exhibit (which will happen if the script for your "link insertion" > javascript appears before the link to exhibit in the head of your page). > > 3. If for some reason your script link inserter has to run _after_ the > exhibit scripts are loaded, you can take advantage of exhibit's > autocreate option. There is an "autoCreate=false" option that tells > exhibit _not_ to run after its code has been loaded; if you set that > option in the exhibit script then you can take over the data-loading > step and then launch exhibit yourself. Take a look at, > e.g.,http://trunk.simile-widgets.org/exhibit/api/scripts/create.js This > is the code that is executed if autoCreate is not cleared. If you run > this code yourself after setting autoCreate=false, you'll get normal > exhibit behavior. So, set autocreate=false, then after exhibit loads > (using jQuery(document).ready as create.js does) run some javascript > that inserts the desired link tag in the header, then call the > autoCreate function yourself. > > 4. If you simply can't fiddle with the head that way, another way to > avoid placing the link command is to do your own loading of the data > manually, inserting your own code that replaces exhibit's loading > process. But you'll need to replace quite a few things. Again, you > can take over the pipeline using autoCreate=false. You can replace > the function window.database.loadDataLinks in create.js with your own > data loading code. Your loading code needs to fetch, parse, and insert > the data you want. For the case of a jsonp data feed like google > spreadsheets, this is normally done by > e.g.http://trunk.simile-widgets.org/exhibit/api/scripts/data/importers/js... > , which uses the googleSpreadsheetsConverter > inhttp://trunk.simile-widgets.org/exhibit/api/scripts/data/database.jsas > its translator, and then calls database.loadData to shove the parsed > data into exhibit. You can write a replacement for the jsonp-importer > code to fetch the google spreadsheet data, then call > googleSpreadSheetsConverter yourself to translate it into exhibit and > call database.loadData yourself to shove it into exhibit's database. > then you can replicate the code in create.js to actually show the > exhibit. > > > > > > > > On Monday, September 19, 2011 3:21:12 AM, Zaheer Ali wrote: > > I know it is not coming from SIMILE's code--I can get the Exhibit/ > > Timeline to function perfectly well as a stand alone webpage. I > > recognize that it is a problem specific to Squarespace's architecture > > which has some restrictions on the kind of scripting it allows, etc. > > > Specifically, placing that link command to retrieve the JSON data from > > the converted Google spreadsheet is what is prompting the error in > > their interface. > > > So with that being said, I am wondering if there is a work around. > > That is: > > > 1. Can the link command be placed somewhere other than the header? > > 2. Is there a way to convert the data on the Google spreadsheet into a > > static JSON file that I can just upload? (I've tried a sample timeline > > and it works with a static JSON file hosted on my own domain rather > > than the external one from Google). Toward this end, I've tried > > several conversion methods found online to convert the spreadsheet > > into a JSON-formatted file and they are all coming out with syntax > > errors as it seems the way my data was entered in the spreadsheet for > > a JSON broadcast is somewhat different (in terms of use of braces and > > quotes, etc.) > > > Thanks for your earlier response. Hopefully you can shed some > > additional light on this. > > > On Sep 19, 3:06 am, David Karger<[email protected]> wrote: > >> the complaint "prefix ex: not bound" is not coming from our code; it > >> suggests that something in your pipeline is trying to recognize a > >> namespace---which would happen if the doc is being parsed as xml rather > >> than html. > > >> On Monday, September 19, 2011 1:00:07 AM, Zaheer Ali wrote: > >>> As I continue to tinker with this, the main problem seems to be the > >>> link to the googlespreadsheet JSON feed. Based on everything I read, > >>> Exhibit seems to require that the link to the data be in the header, > >>> however, when I put my link in the header I get this error: > > >>> Could not parse your site header code. Are you inserting invalid XML? > >>> Error: Error on line 13 of document : The prefix "ex" for attribute > >>> "ex:converter" associated with an element type "link" is not bound. > >>> Nested exception: The prefix "ex" for attribute "ex:converter" > >>> associated with an element type "link" is not bound. > > >>> This is the code format that I'm trying to insert (outer brackets > >>> removed for posting purposes): > > >>> link rel="exhibit/data" type="application/jsonp" href="http:// > >>> spreadsheets.google.com/feeds/list/kdkdk/od6/public/basic?alt=json-in- > >>> script" ex:converter="googleSpreadsheets"></link > > >>> The timeline seems to work when it's loading a plain JSON file, but > >>> all my data is in a google spreadsheet, and when I've tried to export > >>> it, the result doesn't seem to work. > > >>> Any suggestions as to a workaround? > > >>> On Sep 18, 9:16 pm, Zaheer Ali<[email protected]> wrote: > >>>> Whoops I put the wrong URL for the timeline! Here is the correct > >>>> one:www.zaheerali.com/hiphop > > >>>> On Sep 18, 5:44 pm, Zaheer Ali<[email protected]> wrote: > > >>>>> Has anyone had any lucking embedding an Exhibit/Timeline into the > >>>>> Squarespace Content Management System? > > >>>>> Their advanced package allows for inserting Javascript code in the > >>>>> header, but I'm not sure how much to put in the header and what to put > >>>>> in the body. (The header does not accept links so my json spreadsheet > >>>>> feed code doesn't work there.) Also I'm not sure their software > >>>>> recognizes the Div ex: lens coding either. > > >>>>> Here is the Exhibit/Timeline I'm trying to embed into my Squarespace > >>>>> site:www.zaheerali.com/timeline > > >>>>> I suppose if there is no way to do it, I could always work on dressing > >>>>> up that page, but any assistance anyone can offer would be much > >>>>> appreciated. Thanks! -- You received this message because you are subscribed to the Google Groups "SIMILE Widgets" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/simile-widgets?hl=en.
