From c94c5973948e7935734a2219e1aa6750e3b38d5a Mon Sep 17 00:00:00 2001 From: Daniel Morgenstern Date: Tue, 2 Feb 2021 22:28:21 +0100 Subject: [PATCH] Add more fallback options for page time #13 --- dist/bookmark-url.js | 2 +- src/html2biblatex.js | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/dist/bookmark-url.js b/dist/bookmark-url.js index 3d49a77..608b403 100644 --- a/dist/bookmark-url.js +++ b/dist/bookmark-url.js @@ -1 +1 @@ -javascript:"use strict";(function(){function copyToClipboard(text){window.prompt("Copy to clipboard: Ctrl+C, Enter",text)}function jsDate2bibTex(date){var dd=date.getDate();var mm=date.getMonth()+1;var yyyy=date.getFullYear();if(dd<10){dd="0"+dd}if(mm<10){mm="0"+mm}return yyyy+"-"+mm+"-"+dd}function date2YearTex(date){var yyyy=date.getFullYear();return""+yyyy}var title=document.title;var url=document.URL;var author_tag=document.querySelector("[name=author]");var author=author_tag==null?"":author_tag.content;var today=new Date;var urldate=jsDate2bibTex(today);var lastModDate=new Date(document.lastModified);var date=jsDate2bibTex(lastModDate);var year=date2YearTex(lastModDate);var title_key=title.replace(/[^0-9a-z]/gi,"");var citationKey=title_key+"-"+date;var type="@Online";var filename=":./references/"+window.location.pathname.slice(1).replace(/\//g,"-")+".html:html";var title_tex=title.replace(/\u00e4/g,'\\"a').replace(/\u00c4/g,'\\"A').replace(/\u00f6/g,'\\"o').replace(/\u00d6/g,'\\"O').replace(/\u00fc/g,'\\"u').replace(/\u00dc/g,'\\"U').replace(/\u00DF/g,'\\"s');var bibTexEntry=type+" {"+citationKey+",\r title = {"+title_tex+"},\r date = {"+date+"},\r year = {"+year+"},\r"+(author?" author = {"+author+"},\r":"")+" file = {"+filename+"},\r url = {"+url+"},\r urldate = {"+urldate+"}\r}";copyToClipboard(bibTexEntry)})(); \ No newline at end of file +javascript:"use strict";(function(){var _document$querySelect,_document$querySelect2,_document$querySelect3;function copyToClipboard(text){window.prompt("Copy to clipboard: Ctrl+C, Enter",text)}function jsDate2bibTex(date){var dd=date.getDate();var mm=date.getMonth()+1;var yyyy=date.getFullYear();if(dd<10){dd="0"+dd}if(mm<10){mm="0"+mm}return yyyy+"-"+mm+"-"+dd}function date2YearTex(date){var yyyy=date.getFullYear();return""+yyyy}var title=document.title;var url=document.URL;var author_tag=document.querySelector("[name=author]");var author=author_tag==null?"":author_tag.content;var today=new Date;var urldate=jsDate2bibTex(today);var publishedTime=(_document$querySelect=document.querySelector('meta[property="article:published_time"'))===null||_document$querySelect===void 0?void 0:_document$querySelect.getAttribute("content");var someTimeTag=(_document$querySelect2=document.querySelector("time[datetime]"))===null||_document$querySelect2===void 0?void 0:_document$querySelect2.getAttribute("datetime");var someTimeTagWithoutDatetime=(_document$querySelect3=document.querySelector("time"))===null||_document$querySelect3===void 0?void 0:_document$querySelect3.innerHTML;var lastModifiedTime=document.lastModified;var pageTime=new Date(publishedTime||someTimeTag||someTimeTagWithoutDatetime||lastModifiedTime);var date=jsDate2bibTex(pageTime);var year=date2YearTex(pageTime);var title_key=title.replace(/[^0-9a-z]/gi,"");var citationKey=title_key+"-"+date;var type="@Online";var filename=":./references/"+window.location.pathname.slice(1).replace(/\//g,"-")+".html:html";var title_tex=title.replace(/\u00e4/g,'\\"a').replace(/\u00c4/g,'\\"A').replace(/\u00f6/g,'\\"o').replace(/\u00d6/g,'\\"O').replace(/\u00fc/g,'\\"u').replace(/\u00dc/g,'\\"U').replace(/\u00DF/g,'\\"s');var bibTexEntry=type+" {"+citationKey+",\r title = {"+title_tex+"},\r date = {"+date+"},\r year = {"+year+"},\r"+(author?" author = {"+author+"},\r":"")+" file = {"+filename+"},\r url = {"+url+"},\r urldate = {"+urldate+"}\r}";copyToClipboard(bibTexEntry)})(); \ No newline at end of file diff --git a/src/html2biblatex.js b/src/html2biblatex.js index 595e0ff..1b40044 100644 --- a/src/html2biblatex.js +++ b/src/html2biblatex.js @@ -39,9 +39,22 @@ const today = new Date(); const urldate = jsDate2bibTex(today); - const lastModDate = new Date(document.lastModified); - const date = jsDate2bibTex(lastModDate); - const year = date2YearTex(lastModDate); + const publishedTime = document + .querySelector('meta[property="article:published_time"') + ?.getAttribute("content"); + const someTimeTag = document + .querySelector("time[datetime]") + ?.getAttribute("datetime"); + const lastModifiedTime = document.lastModified; + + const pageTime = new Date( + publishedTime || + someTimeTag || + someTimeTagWithoutDatetime || + lastModifiedTime + ); + const date = jsDate2bibTex(pageTime); + const year = date2YearTex(pageTime); // remove special characters for citation key: let title_key = title.replace(/[^0-9a-z]/gi, "");