22< html xmlns ="http://www.w3.org/1999/xhtml " lang ="en " xml:lang ="en "> < head >
33
44< meta charset ="utf-8 ">
5- < meta name ="generator " content ="quarto-1.4.551 ">
5+ < meta name ="generator " content ="quarto-1.3.450 ">
66
77< meta name ="viewport " content ="width=device-width, initial-scale=1.0, user-scalable=yes ">
88
4747 "collapse-after" : 3 ,
4848 "panel-placement" : "end" ,
4949 "type" : "overlay" ,
50- "limit" : 50 ,
51- "keyboard-shortcut" : [
52- "f" ,
53- "/" ,
54- "s"
55- ] ,
56- "show-item-context" : false ,
50+ "limit" : 20 ,
5751 "language" : {
5852 "search-no-results-text" : "No results" ,
5953 "search-matching-documents-text" : "matching documents" ,
6256 "search-more-match-text" : "more match in this document" ,
6357 "search-more-matches-text" : "more matches in this document" ,
6458 "search-clear-button-title" : "Clear" ,
65- "search-text-placeholder" : "" ,
6659 "search-detached-cancel-button-title" : "Cancel" ,
6760 "search-submit-button-title" : "Submit" ,
6861 "search-label" : "Search"
7366< link rel ="stylesheet " href ="../styles.css ">
7467< meta property ="og:title " content ="European Network for Open Criminology - Webinar Recording: ‘Data Sharing in Criminological Research: Tips and How-Tos’ ">
7568< meta property ="og:description " content ="Watch the recording of our first webinar ">
76- < meta property ="og:site_name " content ="European Network for Open Criminology ">
69+ < meta property ="og:site-name " content ="European Network for Open Criminology ">
7770< meta property ="og:locale " content ="en_GB ">
7871< meta name ="twitter:title " content ="European Network for Open Criminology - Webinar Recording: ‘Data Sharing in Criminological Research: Tips and How-Tos’ ">
7972< meta name ="twitter:description " content ="Watch the recording of our first webinar ">
8477
8578< div id ="quarto-search-results "> </ div >
8679 < header id ="quarto-header " class ="headroom fixed-top ">
87- < nav class ="navbar navbar-expand-lg " data-bs-theme =" dark ">
80+ < nav class ="navbar navbar-expand-lg navbar- dark ">
8881 < div class ="navbar-container container-fluid ">
89- < div class ="navbar-brand-container mx-auto ">
82+ < div class ="navbar-brand-container ">
9083 < a class ="navbar-brand " href ="../index.html ">
9184 < span class ="navbar-title "> European Network for Open Criminology</ span >
9285 </ a >
9891 < div class ="collapse navbar-collapse " id ="navbarCollapse ">
9992 < ul class ="navbar-nav navbar-nav-scroll me-auto ">
10093 < li class ="nav-item ">
101- < a class ="nav-link " href ="../index.html ">
102- < span class ="menu-text "> Home</ span > </ a >
94+ < a class ="nav-link " href ="../index.html " rel ="" target ="" >
95+ < span class ="menu-text "> Home</ span > </ a >
10396 </ li >
10497 < li class ="nav-item ">
105- < a class ="nav-link " href ="../about.html ">
106- < span class ="menu-text "> About us</ span > </ a >
98+ < a class ="nav-link " href ="../about.html " rel ="" target ="" >
99+ < span class ="menu-text "> About us</ span > </ a >
107100 </ li >
108101 < li class ="nav-item ">
109- < a class ="nav-link " href ="../join.html ">
110- < span class ="menu-text "> Join us</ span > </ a >
102+ < a class ="nav-link " href ="../join.html " rel ="" target ="" >
103+ < span class ="menu-text "> Join us</ span > </ a >
111104 </ li >
112105 < li class ="nav-item ">
113- < a class ="nav-link " href ="../how-to/index.html ">
114- < span class ="menu-text "> How to</ span > </ a >
106+ < a class ="nav-link " href ="../how-to/index.html " rel ="" target ="" >
107+ < span class ="menu-text "> How to</ span > </ a >
115108 </ li >
116109 < li class ="nav-item ">
117- < a class ="nav-link " href ="../news/index.html ">
118- < span class ="menu-text "> News</ span > </ a >
110+ < a class ="nav-link " href ="../news/index.html " rel ="" target ="" >
111+ < span class ="menu-text "> News</ span > </ a >
119112 </ li >
120113</ ul >
121114 < ul class ="navbar-nav navbar-nav-scroll ms-auto ">
122115 < li class ="nav-item compact ">
123- < a class ="nav-link " href ="https://twitter.com/OpenCriminology "> < i class ="bi bi-twitter " role ="img ">
116+ < a class ="nav-link " href ="https://twitter.com/OpenCriminology " rel ="" target ="" > < i class ="bi bi-twitter " role ="img ">
124117</ i >
125- < span class ="menu-text "> </ span > </ a >
118+ < span class ="menu-text "> </ span > </ a >
126119 </ li >
127120 < li class ="nav-item compact ">
128- < a class ="nav-link " href ="https://github.com/ESC-ENOC "> < i class ="bi bi-github " role ="img ">
121+ < a class ="nav-link " href ="https://github.com/ESC-ENOC " rel ="" target ="" > < i class ="bi bi-github " role ="img ">
129122</ i >
130- < span class ="menu-text "> </ span > </ a >
123+ < span class ="menu-text "> </ span > </ a >
131124 </ li >
132125</ ul >
133- </ div > <!-- /navcollapse -->
134- < div class ="quarto-navbar-tools ">
126+ < div class ="quarto-navbar-tools ">
135127</ div >
128+ </ div > <!-- /navcollapse -->
136129 </ div > <!-- /container-fluid -->
137130 </ nav >
138131</ header >
@@ -179,10 +172,8 @@ <h1 class="title">Webinar Recording: ‘Data Sharing in Criminological Research:
179172 </ div >
180173
181174
182-
183175</ header >
184176
185-
186177< p > On Wednesday 29th November 2023, the European Network for Open Criminology (ENOC) organised its first webinar, titled < em > Webinar Recording: ‘Data Sharing in Criminological Research: Tips and How-Tos’</ em > . The recording of the session can be accessed here:</ p >
187178< iframe src ="https://video.manchester.ac.uk/embedded/ffffffff-e431-3b35-0000-018c1f48e480 " width ="660 " height ="380 " style ="border:none; overflow: hidden; " scrolling ="no " webkitallowfullscreen ="" mozallowfullscreen ="" allowfullscreen ="">
188179</ iframe >
@@ -285,27 +276,10 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
285276 // clear code selection
286277 e . clearSelection ( ) ;
287278 } ) ;
288- var localhostRegex = new RegExp ( / ^ (?: h t t p | h t t p s ) : \/ \/ l o c a l h o s t \: ? [ 0 - 9 ] * \/ / ) ;
289- var mailtoRegex = new RegExp ( / ^ m a i l t o : / ) ;
290- var filterRegex = new RegExp ( '/' + window . location . host + '/' ) ;
291- var isInternal = ( href ) => {
292- return filterRegex . test ( href ) || localhostRegex . test ( href ) || mailtoRegex . test ( href ) ;
293- }
294- // Inspect non-navigation links and adorn them if external
295- var links = window . document . querySelectorAll ( 'a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool)' ) ;
296- for ( var i = 0 ; i < links . length ; i ++ ) {
297- const link = links [ i ] ;
298- if ( ! isInternal ( link . href ) ) {
299- // undo the damage that might have been done by quarto-nav.js in the case of
300- // links that we want to consider external
301- if ( link . dataset . originalHref !== undefined ) {
302- link . href = link . dataset . originalHref ;
303- }
304- }
305- }
306- function tippyHover ( el , contentFn , onTriggerFn , onUntriggerFn ) {
279+ function tippyHover ( el , contentFn ) {
307280 const config = {
308281 allowHTML : true ,
282+ content : contentFn ,
309283 maxWidth : 500 ,
310284 delay : 100 ,
311285 arrow : false ,
@@ -315,17 +289,8 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
315289 interactive : true ,
316290 interactiveBorder : 10 ,
317291 theme : 'quarto' ,
318- placement : 'bottom-start' ,
292+ placement : 'bottom-start'
319293 } ;
320- if ( contentFn ) {
321- config . content = contentFn ;
322- }
323- if ( onTriggerFn ) {
324- config . onTrigger = onTriggerFn ;
325- }
326- if ( onUntriggerFn ) {
327- config . onUntrigger = onUntriggerFn ;
328- }
329294 window . tippy ( el , config ) ;
330295 }
331296 const noterefs = window . document . querySelectorAll ( 'a[role="doc-noteref"]' ) ;
@@ -337,130 +302,7 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
337302 try { href = new URL ( href ) . hash ; } catch { }
338303 const id = href . replace ( / ^ # \/ ? / , "" ) ;
339304 const note = window . document . getElementById ( id ) ;
340- if ( note ) {
341- return note . innerHTML ;
342- } else {
343- return "" ;
344- }
345- } ) ;
346- }
347- const xrefs = window . document . querySelectorAll ( 'a.quarto-xref' ) ;
348- const processXRef = ( id , note ) => {
349- // Strip column container classes
350- const stripColumnClz = ( el ) => {
351- el . classList . remove ( "page-full" , "page-columns" ) ;
352- if ( el . children ) {
353- for ( const child of el . children ) {
354- stripColumnClz ( child ) ;
355- }
356- }
357- }
358- stripColumnClz ( note )
359- if ( id === null || id . startsWith ( 'sec-' ) ) {
360- // Special case sections, only their first couple elements
361- const container = document . createElement ( "div" ) ;
362- if ( note . children && note . children . length > 2 ) {
363- container . appendChild ( note . children [ 0 ] . cloneNode ( true ) ) ;
364- for ( let i = 1 ; i < note . children . length ; i ++ ) {
365- const child = note . children [ i ] ;
366- if ( child . tagName === "P" && child . innerText === "" ) {
367- continue ;
368- } else {
369- container . appendChild ( child . cloneNode ( true ) ) ;
370- break ;
371- }
372- }
373- if ( window . Quarto ?. typesetMath ) {
374- window . Quarto . typesetMath ( container ) ;
375- }
376- return container . innerHTML
377- } else {
378- if ( window . Quarto ?. typesetMath ) {
379- window . Quarto . typesetMath ( note ) ;
380- }
381- return note . innerHTML ;
382- }
383- } else {
384- // Remove any anchor links if they are present
385- const anchorLink = note . querySelector ( 'a.anchorjs-link' ) ;
386- if ( anchorLink ) {
387- anchorLink . remove ( ) ;
388- }
389- if ( window . Quarto ?. typesetMath ) {
390- window . Quarto . typesetMath ( note ) ;
391- }
392- // TODO in 1.5, we should make sure this works without a callout special case
393- if ( note . classList . contains ( "callout" ) ) {
394- return note . outerHTML ;
395- } else {
396- return note . innerHTML ;
397- }
398- }
399- }
400- for ( var i = 0 ; i < xrefs . length ; i ++ ) {
401- const xref = xrefs [ i ] ;
402- tippyHover ( xref , undefined , function ( instance ) {
403- instance . disable ( ) ;
404- let url = xref . getAttribute ( 'href' ) ;
405- let hash = undefined ;
406- if ( url . startsWith ( '#' ) ) {
407- hash = url ;
408- } else {
409- try { hash = new URL ( url ) . hash ; } catch { }
410- }
411- if ( hash ) {
412- const id = hash . replace ( / ^ # \/ ? / , "" ) ;
413- const note = window . document . getElementById ( id ) ;
414- if ( note !== null ) {
415- try {
416- const html = processXRef ( id , note . cloneNode ( true ) ) ;
417- instance . setContent ( html ) ;
418- } finally {
419- instance . enable ( ) ;
420- instance . show ( ) ;
421- }
422- } else {
423- // See if we can fetch this
424- fetch ( url . split ( '#' ) [ 0 ] )
425- . then ( res => res . text ( ) )
426- . then ( html => {
427- const parser = new DOMParser ( ) ;
428- const htmlDoc = parser . parseFromString ( html , "text/html" ) ;
429- const note = htmlDoc . getElementById ( id ) ;
430- if ( note !== null ) {
431- const html = processXRef ( id , note ) ;
432- instance . setContent ( html ) ;
433- }
434- } ) . finally ( ( ) => {
435- instance . enable ( ) ;
436- instance . show ( ) ;
437- } ) ;
438- }
439- } else {
440- // See if we can fetch a full url (with no hash to target)
441- // This is a special case and we should probably do some content thinning / targeting
442- fetch ( url )
443- . then ( res => res . text ( ) )
444- . then ( html => {
445- const parser = new DOMParser ( ) ;
446- const htmlDoc = parser . parseFromString ( html , "text/html" ) ;
447- const note = htmlDoc . querySelector ( 'main.content' ) ;
448- if ( note !== null ) {
449- // This should only happen for chapter cross references
450- // (since there is no id in the URL)
451- // remove the first header
452- if ( note . children . length > 0 && note . children [ 0 ] . tagName === "HEADER" ) {
453- note . children [ 0 ] . remove ( ) ;
454- }
455- const html = processXRef ( null , note ) ;
456- instance . setContent ( html ) ;
457- }
458- } ) . finally ( ( ) => {
459- instance . enable ( ) ;
460- instance . show ( ) ;
461- } ) ;
462- }
463- } , function ( instance ) {
305+ return note . innerHTML ;
464306 } ) ;
465307 }
466308 let selectedAnnoteEl ;
@@ -504,7 +346,6 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
504346 }
505347 div . style . top = top - 2 + "px" ;
506348 div . style . height = height + 4 + "px" ;
507- div . style . left = 0 ;
508349 let gutterDiv = window . document . getElementById ( "code-annotation-line-highlight-gutter" ) ;
509350 if ( gutterDiv === null ) {
510351 gutterDiv = window . document . createElement ( "div" ) ;
@@ -530,32 +371,6 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
530371 } ) ;
531372 selectedAnnoteEl = undefined ;
532373 } ;
533- // Handle positioning of the toggle
534- window . addEventListener (
535- "resize" ,
536- throttle ( ( ) => {
537- elRect = undefined ;
538- if ( selectedAnnoteEl ) {
539- selectCodeLines ( selectedAnnoteEl ) ;
540- }
541- } , 10 )
542- ) ;
543- function throttle ( fn , ms ) {
544- let throttle = false ;
545- let timer ;
546- return ( ...args ) => {
547- if ( ! throttle ) { // first call gets through
548- fn . apply ( this , args ) ;
549- throttle = true ;
550- } else { // all the others get throttled
551- if ( timer ) clearTimeout ( timer ) ; // cancel #2
552- timer = setTimeout ( ( ) => {
553- fn . apply ( this , args ) ;
554- timer = throttle = false ;
555- } , ms ) ;
556- }
557- } ;
558- }
559374 // Attach click handler to the DT
560375 const annoteDls = window . document . querySelectorAll ( 'dt[data-target-cell]' ) ;
561376 for ( const annoteDlNode of annoteDls ) {
@@ -619,5 +434,4 @@ <h3 class="anchored" data-anchor-id="speakers">Speakers</h3>
619434
620435
621436
622-
623437</ body > </ html >
0 commit comments