cgspace-notes/docs/posts/page/5/index.html

453 lines
18 KiB
HTML
Raw Normal View History

2019-02-01 20:45:50 +01:00
<!DOCTYPE html>
<html lang="en" >
2019-02-01 20:45:50 +01:00
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta property="og:title" content="Posts" />
<meta property="og:description" content="Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://alanorth.github.io/cgspace-notes/posts/" />
2020-04-02 09:54:46 +02:00
<meta property="og:updated_time" content="2020-04-02T10:53:24+03:00" />
2019-02-01 20:45:50 +01:00
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content="Documenting day-to-day work on the [CGSpace](https://cgspace.cgiar.org) repository."/>
2020-03-26 14:14:14 +01:00
<meta name="generator" content="Hugo 0.68.3" />
2019-02-01 20:45:50 +01:00
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "Blog",
"headline": "CGSpace Notes",
2019-04-13 11:15:55 +02:00
"url" : "https:\/\/alanorth.github.io\/cgspace-notes\/posts\/",
2019-02-01 20:45:50 +01:00
"author": {
"@type": "Person",
"name": "Alan Orth"
},
2020-04-02 09:54:46 +02:00
"dateModified": "2020-04-02T10:53:24+03:00",
2019-10-28 12:43:25 +01:00
"keywords": "notes,migration,notes,",
2019-04-13 11:15:55 +02:00
"description": "Documenting day-to-day work on the [CGSpace](https:\/\/cgspace.cgiar.org) repository."
2019-02-01 20:45:50 +01:00
}
</script>
<link rel="canonical" href="https://alanorth.github.io/cgspace-notes/posts/">
<title>CGSpace Notes</title>
2019-02-01 20:45:50 +01:00
<!-- combined, minified CSS -->
2020-01-23 19:19:38 +01:00
2020-01-28 11:01:42 +01:00
<link href="https://alanorth.github.io/cgspace-notes/css/style.6da5c906cc7a8fbb93f31cd2316c5dbe3f19ac4aa6bfb066f1243045b8f6061e.css" rel="stylesheet" integrity="sha256-baXJBsx6j7uT8xzSMWxdvj8ZrEqmv7Bm8SQwRbj2Bh4=" crossorigin="anonymous">
2019-02-01 20:45:50 +01:00
2020-01-28 11:01:42 +01:00
<!-- minified Font Awesome for SVG icons -->
<script defer src="https://alanorth.github.io/cgspace-notes/js/fontawesome.min.90e14c13cee52929ac33e1c21694a3cc95063a194eb22aad9f7976434e1a9125.js" integrity="sha256-kOFME87lKSmsM&#43;HCFpSjzJUGOhlOsiqtn3l2Q04akSU=" crossorigin="anonymous"></script>
2019-02-01 20:45:50 +01:00
<!-- RSS 2.0 feed -->
2019-04-14 15:59:47 +02:00
<link rel="alternate" type="application/rss+xml" href="https://alanorth.github.io/cgspace-notes/posts/index.xml" title="CGSpace Notes" />
2019-02-01 20:45:50 +01:00
</head>
<body>
<div class="blog-masthead">
<div class="container">
<nav class="nav blog-nav">
<a class="nav-link " href="https://alanorth.github.io/cgspace-notes/">Home</a>
</nav>
</div>
</div>
<header class="blog-header">
<div class="container">
<h1 class="blog-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/" rel="home">CGSpace Notes</a></h1>
<p class="lead blog-description" dir="auto">Documenting day-to-day work on the <a href="https://cgspace.cgiar.org">CGSpace</a> repository.</p>
2019-02-01 20:45:50 +01:00
</div>
</header>
<div class="container">
<div class="row">
<div class="col-sm-8 blog-main">
2020-04-02 09:54:46 +02:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2017-02/">February, 2017</a></h2>
<p class="blog-post-meta"><time datetime="2017-02-07T07:04:52-08:00">Tue Feb 07, 2017</time> by Alan Orth in
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
</p>
</header>
<h2 id="2017-02-07">2017-02-07</h2>
<ul>
<li>An item was mapped twice erroneously again, so I had to remove one of the mappings manually:</li>
</ul>
<pre><code>dspace=# select * from collection2item where item_id = '80278';
id | collection_id | item_id
-------+---------------+---------
92551 | 313 | 80278
92550 | 313 | 80278
90774 | 1051 | 80278
(3 rows)
dspace=# delete from collection2item where id = 92551 and item_id = 80278;
DELETE 1
</code></pre><ul>
<li>Create issue on GitHub to track the addition of CCAFS Phase II project tags (<a href="https://github.com/ilri/DSpace/issues/301">#301</a>)</li>
<li>Looks like we&rsquo;ll be using <code>cg.identifier.ccafsprojectpii</code> as the field name</li>
</ul>
<a href='https://alanorth.github.io/cgspace-notes/2017-02/'>Read more →</a>
</article>
2020-03-02 11:38:10 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2017-01/">January, 2017</a></h2>
<p class="blog-post-meta"><time datetime="2017-01-02T10:43:00&#43;03:00">Mon Jan 02, 2017</time> by Alan Orth in
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
</p>
</header>
<h2 id="2017-01-02">2017-01-02</h2>
<ul>
<li>I checked to see if the Solr sharding task that is supposed to run on January 1st had run and saw there was an error</li>
<li>I tested on DSpace Test as well and it doesn&rsquo;t work there either</li>
<li>I asked on the dspace-tech mailing list because it seems to be broken, and actually now I&rsquo;m not sure if we&rsquo;ve ever had the sharding task run successfully over all these years</li>
</ul>
<a href='https://alanorth.github.io/cgspace-notes/2017-01/'>Read more →</a>
</article>
2020-02-02 16:15:48 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-12/">December, 2016</a></h2>
<p class="blog-post-meta"><time datetime="2016-12-02T10:43:00&#43;03:00">Fri Dec 02, 2016</time> by Alan Orth in
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
</p>
</header>
<h2 id="2016-12-02">2016-12-02</h2>
<ul>
<li>CGSpace was down for five hours in the morning while I was sleeping</li>
<li>While looking in the logs for errors, I see tons of warnings about Atmire MQM:</li>
</ul>
<pre><code>2016-12-02 03:00:32,352 WARN com.atmire.metadataquality.batchedit.BatchEditConsumer @ BatchEditConsumer should not have been given this kind of Subject in an event, skipping: org.dspace.event.Event(eventType=CREATE, SubjectType=BUNDLE, SubjectID=70316, ObjectType=(Unknown), ObjectID=-1, TimeStamp=1480647632305, dispatcher=1544803905, detail=[null], transactionID=&quot;TX157907838689377964651674089851855413607&quot;)
2016-12-02 03:00:32,353 WARN com.atmire.metadataquality.batchedit.BatchEditConsumer @ BatchEditConsumer should not have been given this kind of Subject in an event, skipping: org.dspace.event.Event(eventType=MODIFY_METADATA, SubjectType=BUNDLE, SubjectID =70316, ObjectType=(Unknown), ObjectID=-1, TimeStamp=1480647632309, dispatcher=1544803905, detail=&quot;dc.title&quot;, transactionID=&quot;TX157907838689377964651674089851855413607&quot;)
2016-12-02 03:00:32,353 WARN com.atmire.metadataquality.batchedit.BatchEditConsumer @ BatchEditConsumer should not have been given this kind of Subject in an event, skipping: org.dspace.event.Event(eventType=ADD, SubjectType=ITEM, SubjectID=80044, Object Type=BUNDLE, ObjectID=70316, TimeStamp=1480647632311, dispatcher=1544803905, detail=&quot;THUMBNAIL&quot;, transactionID=&quot;TX157907838689377964651674089851855413607&quot;)
2016-12-02 03:00:32,353 WARN com.atmire.metadataquality.batchedit.BatchEditConsumer @ BatchEditConsumer should not have been given this kind of Subject in an event, skipping: org.dspace.event.Event(eventType=ADD, SubjectType=BUNDLE, SubjectID=70316, Obje ctType=BITSTREAM, ObjectID=86715, TimeStamp=1480647632318, dispatcher=1544803905, detail=&quot;-1&quot;, transactionID=&quot;TX157907838689377964651674089851855413607&quot;)
2016-12-02 03:00:32,353 WARN com.atmire.metadataquality.batchedit.BatchEditConsumer @ BatchEditConsumer should not have been given this kind of Subject in an event, skipping: org.dspace.event.Event(eventType=MODIFY, SubjectType=ITEM, SubjectID=80044, ObjectType=(Unknown), ObjectID=-1, TimeStamp=1480647632351, dispatcher=1544803905, detail=[null], transactionID=&quot;TX157907838689377964651674089851855413607&quot;)
</code></pre><ul>
<li>I see thousands of them in the logs for the last few months, so it&rsquo;s not related to the DSpace 5.5 upgrade</li>
<li>I&rsquo;ve raised a ticket with Atmire to ask</li>
<li>Another worrying error from dspace.log is:</li>
</ul>
<a href='https://alanorth.github.io/cgspace-notes/2016-12/'>Read more →</a>
</article>
2020-01-06 10:14:44 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-11/">November, 2016</a></h2>
<p class="blog-post-meta"><time datetime="2016-11-01T09:21:00&#43;03:00">Tue Nov 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2020-01-06 10:14:44 +01:00
</p>
</header>
<h2 id="2016-11-01">2016-11-01</h2>
<ul>
2020-01-27 15:20:44 +01:00
<li>Add <code>dc.type</code> to the output options for Atmire&rsquo;s Listings and Reports module (<a href="https://github.com/ilri/DSpace/pull/286">#286</a>)</li>
2020-01-06 10:14:44 +01:00
</ul>
<p><img src="/cgspace-notes/2016/11/listings-and-reports.png" alt="Listings and Reports with output type"></p>
<a href='https://alanorth.github.io/cgspace-notes/2016-11/'>Read more →</a>
</article>
2019-12-01 10:29:49 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-10/">October, 2016</a></h2>
<p class="blog-post-meta"><time datetime="2016-10-03T15:53:00&#43;03:00">Mon Oct 03, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-12-01 10:29:49 +01:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-10-03">2016-10-03</h2>
2019-12-01 10:29:49 +01:00
<ul>
<li>Testing adding <a href="https://wiki.duraspace.org/display/DSDOC5x/ORCID+Integration#ORCIDIntegration-EditingexistingitemsusingBatchCSVEditing">ORCIDs to a CSV</a> file for a single item to see if the author orders get messed up</li>
<li>Need to test the following scenarios to see how author order is affected:
<ul>
<li>ORCIDs only</li>
<li>ORCIDs plus normal authors</li>
</ul>
</li>
2020-01-27 15:20:44 +01:00
<li>I exported a random item&rsquo;s metadata as CSV, deleted <em>all columns</em> except id and collection, and made a new coloum called <code>ORCID:dc.contributor.author</code> with the following random ORCIDs from the ORCID registry:</li>
2019-12-01 10:29:49 +01:00
</ul>
<pre><code>0000-0002-6115-0956||0000-0002-3812-8793||0000-0001-7462-405X
</code></pre>
<a href='https://alanorth.github.io/cgspace-notes/2016-10/'>Read more →</a>
</article>
2019-11-04 15:41:19 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-09/">September, 2016</a></h2>
<p class="blog-post-meta"><time datetime="2016-09-01T15:53:00&#43;03:00">Thu Sep 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-11-04 15:41:19 +01:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-09-01">2016-09-01</h2>
2019-11-04 15:41:19 +01:00
<ul>
<li>Discuss helping CCAFS with some batch tagging of ORCID IDs for their authors</li>
2020-01-27 15:20:44 +01:00
<li>Discuss how the migration of CGIAR&rsquo;s Active Directory to a flat structure will break our LDAP groups in DSpace</li>
2019-11-04 15:41:19 +01:00
<li>We had been using <code>DC=ILRI</code> to determine whether a user was ILRI or not</li>
2019-11-28 16:30:45 +01:00
<li>It looks like we might be able to use OUs now, instead of DCs:</li>
2019-11-04 15:41:19 +01:00
</ul>
2019-11-28 16:30:45 +01:00
<pre><code>$ ldapsearch -x -H ldaps://svcgroot2.cgiarad.org:3269/ -b &quot;dc=cgiarad,dc=org&quot; -D &quot;admigration1@cgiarad.org&quot; -W &quot;(sAMAccountName=admigration1)&quot;
</code></pre>
2019-11-04 15:41:19 +01:00
<a href='https://alanorth.github.io/cgspace-notes/2016-09/'>Read more →</a>
</article>
2019-10-28 12:43:25 +01:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-08/">August, 2016</a></h2>
<p class="blog-post-meta"><time datetime="2016-08-01T15:53:00&#43;03:00">Mon Aug 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-10-28 12:43:25 +01:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-08-01">2016-08-01</h2>
2019-10-28 12:43:25 +01:00
<ul>
<li>Add updated distribution license from Sisay (<a href="https://github.com/ilri/DSpace/issues/259">#259</a>)</li>
<li>Play with upgrading Mirage 2 dependencies in <code>bower.json</code> because most are several versions of out date</li>
<li>Bootstrap is at 3.3.0 but upstream is at 3.3.7, and upgrading to anything beyond 3.3.1 breaks glyphicons and probably more</li>
<li>bower stuff is a dead end, waste of time, too many issues</li>
<li>Anything after Bootstrap 3.3.1 makes glyphicons disappear (HTTP 404 trying to access from incorrect path of <code>fonts</code>)</li>
2019-11-28 16:30:45 +01:00
<li>Start working on DSpace 5.15.5 port:</li>
</ul>
2019-10-28 12:43:25 +01:00
<pre><code>$ git checkout -b 55new 5_x-prod
$ git reset --hard ilri/5_x-prod
$ git rebase -i dspace-5.5
2019-11-28 16:30:45 +01:00
</code></pre>
2019-10-28 12:43:25 +01:00
<a href='https://alanorth.github.io/cgspace-notes/2016-08/'>Read more →</a>
</article>
2019-10-01 16:31:40 +02:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-07/">July, 2016</a></h2>
2019-10-01 16:31:40 +02:00
<p class="blog-post-meta"><time datetime="2016-07-01T10:53:00&#43;03:00">Fri Jul 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-10-01 16:31:40 +02:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-07-01">2016-07-01</h2>
2019-10-01 16:31:40 +02:00
<ul>
<li>Add <code>dc.description.sponsorship</code> to Discovery sidebar facets and make investors clickable in item view (<a href="https://github.com/ilri/DSpace/issues/232">#232</a>)</li>
2019-11-28 16:30:45 +01:00
<li>I think this query should find and replace all authors that have &ldquo;,&rdquo; at the end of their names:</li>
</ul>
2019-10-01 16:31:40 +02:00
<pre><code>dspacetest=# update metadatavalue set text_value = regexp_replace(text_value, '(^.+?),$', '\1') where metadata_field_id=3 and resource_type_id=2 and text_value ~ '^.+?,$';
UPDATE 95
dspacetest=# select text_value from metadatavalue where metadata_field_id=3 and resource_type_id=2 and text_value ~ '^.+?,$';
2019-11-28 16:30:45 +01:00
text_value
2019-10-01 16:31:40 +02:00
------------
(0 rows)
2019-11-28 16:30:45 +01:00
</code></pre><ul>
<li>In this case the select query was showing 95 results before the update</li>
2019-10-01 16:31:40 +02:00
</ul>
<a href='https://alanorth.github.io/cgspace-notes/2016-07/'>Read more →</a>
</article>
2019-09-01 09:41:30 +02:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-06/">June, 2016</a></h2>
2019-09-01 09:41:30 +02:00
<p class="blog-post-meta"><time datetime="2016-06-01T10:53:00&#43;03:00">Wed Jun 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-09-01 09:41:30 +02:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-06-01">2016-06-01</h2>
2019-09-01 09:41:30 +02:00
<ul>
<li>Experimenting with IFPRI OAI (we want to harvest their publications)</li>
2020-01-27 15:20:44 +01:00
<li>After reading the <a href="https://www.oclc.org/support/services/contentdm/help/server-admin-help/oai-support.en.html">ContentDM documentation</a> I found IFPRI&rsquo;s OAI endpoint: <a href="http://ebrary.ifpri.org/oai/oai.php">http://ebrary.ifpri.org/oai/oai.php</a></li>
2019-09-01 09:41:30 +02:00
<li>After reading the <a href="https://www.openarchives.org/OAI/openarchivesprotocol.html">OAI documentation</a> and testing with an <a href="http://validator.oaipmh.com/">OAI validator</a> I found out how to get their publications</li>
<li>This is their publications set: <a href="http://ebrary.ifpri.org/oai/oai.php?verb=ListRecords&amp;from=2016-01-01&amp;set=p15738coll2&amp;metadataPrefix=oai_dc">http://ebrary.ifpri.org/oai/oai.php?verb=ListRecords&amp;from=2016-01-01&amp;set=p15738coll2&amp;metadataPrefix=oai_dc</a></li>
<li>You can see the others by using the OAI <code>ListSets</code> verb: <a href="http://ebrary.ifpri.org/oai/oai.php?verb=ListSets">http://ebrary.ifpri.org/oai/oai.php?verb=ListSets</a></li>
<li>Working on second phase of metadata migration, looks like this will work for moving CPWF-specific data in <code>dc.identifier.fund</code> to <code>cg.identifier.cpwfproject</code> and then the rest to <code>dc.description.sponsorship</code></li>
</ul>
<a href='https://alanorth.github.io/cgspace-notes/2016-06/'>Read more →</a>
</article>
2019-08-04 21:49:04 +02:00
<article class="blog-post">
<header>
<h2 class="blog-post-title" dir="auto"><a href="https://alanorth.github.io/cgspace-notes/2016-05/">May, 2016</a></h2>
2019-08-04 21:49:04 +02:00
<p class="blog-post-meta"><time datetime="2016-05-01T23:06:00&#43;03:00">Sun May 01, 2016</time> by Alan Orth in
2020-01-28 11:01:42 +01:00
<span class="fas fa-tag" aria-hidden="true"></span>&nbsp;<a href="/cgspace-notes/tags/notes/" rel="tag">Notes</a>
2019-08-04 21:49:04 +02:00
</p>
</header>
2019-12-17 13:49:24 +01:00
<h2 id="2016-05-01">2016-05-01</h2>
2019-08-04 21:49:04 +02:00
<ul>
<li>Since yesterday there have been 10,000 REST errors and the site has been unstable again</li>
<li>I have blocked access to the API now</li>
2019-11-28 16:30:45 +01:00
<li>There are 3,000 IPs accessing the REST API in a 24-hour period!</li>
</ul>
2019-08-04 21:49:04 +02:00
<pre><code># awk '{print $1}' /var/log/nginx/rest.log | uniq | wc -l
3168
2019-11-28 16:30:45 +01:00
</code></pre>
2019-08-04 21:49:04 +02:00
<a href='https://alanorth.github.io/cgspace-notes/2016-05/'>Read more →</a>
</article>
2019-02-01 20:45:50 +01:00
<nav class="blog-pagination">
<a class="btn btn-outline-primary" href="/cgspace-notes/posts/page/4/" rel="prev" role="button">Previous page</a>
2019-11-04 15:41:19 +01:00
<a class="btn btn-outline-primary" href="/cgspace-notes/posts/page/6/" rel="next" role="button">Next page</a>
2019-02-01 20:45:50 +01:00
</nav>
</div> <!-- /.blog-main -->
<aside class="col-sm-3 ml-auto blog-sidebar">
<section class="sidebar-module">
<h4>Recent Posts</h4>
<ol class="list-unstyled">
2020-04-02 09:54:46 +02:00
<li><a href="/cgspace-notes/2020-04/">April, 2020</a></li>
2020-03-02 11:38:10 +01:00
<li><a href="/cgspace-notes/2020-03/">March, 2020</a></li>
2020-02-02 16:15:48 +01:00
<li><a href="/cgspace-notes/2020-02/">February, 2020</a></li>
2020-01-14 19:40:41 +01:00
<li><a href="/cgspace-notes/2020-01/">January, 2020</a></li>
2019-12-01 10:29:49 +01:00
<li><a href="/cgspace-notes/2019-12/">December, 2019</a></li>
2019-02-01 20:45:50 +01:00
</ol>
</section>
<section class="sidebar-module">
<h4>Links</h4>
<ol class="list-unstyled">
<li><a href="https://cgspace.cgiar.org">CGSpace</a></li>
<li><a href="https://dspacetest.cgiar.org">DSpace Test</a></li>
<li><a href="https://github.com/ilri/DSpace">CGSpace @ GitHub</a></li>
</ol>
</section>
</aside>
</div> <!-- /.row -->
</div> <!-- /.container -->
<footer class="blog-footer">
<p dir="auto">
2019-02-01 20:45:50 +01:00
Blog template created by <a href="https://twitter.com/mdo">@mdo</a>, ported to Hugo by <a href='https://twitter.com/mralanorth'>@mralanorth</a>.
</p>
<p>
<a href="#">Back to top</a>
</p>
</footer>
</body>
</html>