Print

Print


Hi Birkin,

I have experience with this sort of thing, but I've been doing it as a
one-man team. I can't speak to a collaborative environment.

Right now we have a few platforms that use the same header and footer
elements: our website, LibGuides, EZproxy, and DSpace. I have tried to set
it up so that our main website is the single source of truth. It's a Rails
app. The header and footer elements normally are loaded into pages, but I
created separate endpoints that load the header and footer elements in
isolation. Then in LibGuides for instance, I use a basic jQuery AJAX
request to get those single elements and stick them into the page each time
a page loads. There is a slight delay, but otherwise the user is none the
wiser. Then in LibGuides I also load a partial version of the main
website's CSS rather than writing a new CSS file just for LibGuides.

It's not a perfect system, and there have been several issues:

   - If your secondary platform doesn't let you use custom Javascript, you
   are totally out of luck. So that rules out most database platforms
   (EBSCOhost, ProQuest, JSTOR, etc)
   - It is not uncommon for your global CSS to interfere with the other
   site's CSS or vice versa. The best thing you can do is to use very
   specifically scoped class names.
   - More specifically, our main website is built with Bootstrap v4, and
   LibGuides uses Bootstrap v3. Those are not compatible, so a bunch of CSS
   fixes are needed to make it work.
   - If you have any kind of Javascript-based events in your components,
   you can't count on the code to be initialized on page load the typical way.
   You have to initialize them after they have been loaded into the page.
   - CORS is just terrible. You need to make sure your main server sends
   CORS headers to whitelist all the specific domains that will be using the
   components.

Life is probably simpler if you'd just copy/paste the code from Site A into
Site B, but the programmer in me doesn't like the idea. It's error-prone
and just tedious.

Joshua Welker
Library Systems and Discovery Coordinator
James C. Kirkpatrick Library
University of Central Missouri
Warrensburg, MO 64093
JCKL 2260
660.543.8022



On Tue, May 14, 2019 at 1:36 PM Birkin Diana <[log in to unmask]> wrote:

> Hi folk,
>
> This is a request for suggestions/posts/links you've found useful.
>
> Inspired by a University web redesign, a few of us in the Library are
> beginning to investigate "pattern-libraries" to help us make and keep the
> look & feel of our disparate systems more in-sync with one another. (Beyond
> the informal work-practices we currently use.)
>
> Example:
> <https://boagworld.com/design/pattern-library>
>
> A couple questions...
>
> To those of you that use, or have experimented with pattern-libraries, or
> something similar...
>
>   - Are they used widely across the different library systems you have?
>
>   - Do you as developers, designers, etc embrace their use? Chafe under
> perceived constraints?
>
>   - Are there "hierarchies" of adherence? i.e. do you try to 'mandate',
> say, the header & footer, while leaving other elements more customizable?
> Or does that unnecessarily invite chaos?
>
> A related but different thing I'm curious about...
>
> Say you have some 'canonical Library elements', like a main Library header
> and footer. Our developer group can see, and has experienced, benefits and
> drawbacks of having our different systems directly point to these canonical
> web-accessible elements -- vs 'ingesting' them into our different systems.
>
> The direct-point/load method makes it easier to disseminate updates across
> disparate systems. But we've also experienced such updates breaking things
> downstream -- so in some rails/django development, we 'ingest' the
> canonical html/css into our different web-applications, thereby
> 'protecting' them, but making updates more manual and slower.
>
> Other related issues y'all have grappled with? Thanks in advance.
>
> -b
>
> PS -- in searching through the archives, I remembered this interesting
> thread on "Usability and A/B test results clearinghouse" <
> https://lists.clir.org/cgi-bin/wa?A1=ind1901&L=CODE4LIB#120> -- but this
> topic feels different.
> ---
> Birkin James Diana
> Digital Technologies Developer
> Brown University Library
> [log in to unmask]
>