mirror of
https://github.com/LCPQ/QUESTDB_website.git
synced 2024-12-25 22:03:49 +01:00
Handle .dat format and delete json
This commit is contained in:
parent
501333d92c
commit
fd3cc0ae29
@ -1,100 +0,0 @@
|
|||||||
{
|
|
||||||
"molecule": "water",
|
|
||||||
"code": {
|
|
||||||
"name": "",
|
|
||||||
"version": ""
|
|
||||||
},
|
|
||||||
"basis": {
|
|
||||||
"type": "gaussian",
|
|
||||||
"name": "aug-cc-pVDZ"
|
|
||||||
},
|
|
||||||
"method": "CC3",
|
|
||||||
"exitations": [
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"num": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "B_1"
|
|
||||||
},
|
|
||||||
"energy": 7.51
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_2"
|
|
||||||
},
|
|
||||||
"energy": 9.29
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"number": 2,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"energy": 9.92
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 3,
|
|
||||||
"symetry": "B_1"
|
|
||||||
},
|
|
||||||
"energy": 7.13
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 3,
|
|
||||||
"symetry": "A_2"
|
|
||||||
},
|
|
||||||
"energy": 9.12,
|
|
||||||
"error": 0.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "vert",
|
|
||||||
"start": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 1,
|
|
||||||
"symmetry": "A_1"
|
|
||||||
},
|
|
||||||
"end": {
|
|
||||||
"number": 1,
|
|
||||||
"multiplicity": 3,
|
|
||||||
"symetry": "A_1"
|
|
||||||
},
|
|
||||||
"energy": 9.47
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"doi": "10.1021/acs.jctc.8b00406"
|
|
||||||
}
|
|
11
index.html
11
index.html
@ -2,20 +2,21 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<script src="scripts/data.js" type="text/javascript"></script>
|
<script src="scripts/data.js" type="text/javascript"></script>
|
||||||
|
<script src="scripts/getFullDataPath.js" type="text/javascript"></script>
|
||||||
<script src="https://cdn.rawgit.com/larsgw/citation.js/archive/citation.js/citation-0.4.0-9.js" type="text/javascript"></script>
|
<script src="https://cdn.rawgit.com/larsgw/citation.js/archive/citation.js/citation-0.4.0-9.js" type="text/javascript"></script>
|
||||||
<script>
|
<script>
|
||||||
function update_file(filename) {
|
function update_file(filename) {
|
||||||
file=filename+'.json'
|
file=filename+'.dat'
|
||||||
lnk_file.setAttribute('href',getFullDataPath(file));
|
lnk_file.setAttribute('href',getFullDataPath(file));
|
||||||
lnk_file=document.getElementById('lnk_file');
|
lnk_file=document.getElementById('lnk_file');
|
||||||
getDataFromFile(file,onApplyData);
|
data.load(file,onApplyData);
|
||||||
}
|
}
|
||||||
function onApplyData(data) {
|
function onApplyData(dat) {
|
||||||
lnk_doi=document.getElementById('lnk_doi');
|
lnk_doi=document.getElementById('lnk_doi');
|
||||||
doiurl=getDoiUrl(data.doi);
|
doiurl=dat.doi.url;
|
||||||
lnk_doi.setAttribute('href',doiurl);
|
lnk_doi.setAttribute('href',doiurl);
|
||||||
const Cite = require('citation-js');
|
const Cite = require('citation-js');
|
||||||
let publi = new Cite(data.doi)
|
let publi = new Cite(dat.doi.string)
|
||||||
lnk_doi.innerHTML=publi.format('citation');
|
lnk_doi.innerHTML=publi.format('citation');
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
133
scripts/data.js
133
scripts/data.js
@ -1,21 +1,122 @@
|
|||||||
function getDataFromFile(file,fn) {
|
class code {
|
||||||
var result = null;
|
constructor(name,version){
|
||||||
var xmlhttp = new XMLHttpRequest();
|
this.name=name
|
||||||
xmlhttp
|
this.version=version
|
||||||
xmlhttp.open("GET",getFullDataPath(file), true);
|
}
|
||||||
xmlhttp.onreadystatechange = function() {
|
}
|
||||||
if (this.readyState == 4 && this.status == 200) {//when a good response is given do this
|
class basis {
|
||||||
|
constructor(name,type){
|
||||||
var data = JSON.parse(this.responseText); // convert the response to a json object
|
this.name=name
|
||||||
fn(data)
|
this.type=type
|
||||||
}
|
|
||||||
}
|
}
|
||||||
xmlhttp.send();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function getDoiUrl(doi) {
|
class state{
|
||||||
return 'https://doi.org/'+doi
|
constructor(number,multiplicity,symetry){
|
||||||
|
this.number=number;
|
||||||
|
this.multiplicity=multiplicity;
|
||||||
|
this.symetry=symetry;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
function getFullDataPath(path) {
|
class doi{
|
||||||
return 'data/'+path
|
constructor(doistring){
|
||||||
|
this.string=doistring
|
||||||
|
}
|
||||||
|
get url() {
|
||||||
|
return 'https://doi.org/'+doi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class excitation{
|
||||||
|
constructor(start,end,Evert){
|
||||||
|
this.start=start;
|
||||||
|
this.end=end;
|
||||||
|
this.Evert=Evert;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class data {
|
||||||
|
constructor(){
|
||||||
|
this.title="";
|
||||||
|
this.code=null;
|
||||||
|
this.basis=null;
|
||||||
|
this.doi=null;
|
||||||
|
this.excitations=[];
|
||||||
|
}
|
||||||
|
static load(file,fn) {
|
||||||
|
var req = new XMLHttpRequest();
|
||||||
|
req.open("GET",getFullDataPath(file), true);
|
||||||
|
req.onreadystatechange = function() {
|
||||||
|
if (req.readyState == 4 && req.status == 200) {//when a good response is given do this
|
||||||
|
var text = req.responseText;
|
||||||
|
fn(data.loadstring(text));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
req.send();
|
||||||
|
}
|
||||||
|
static loadstring(text) {
|
||||||
|
// for each line with metadata
|
||||||
|
var ismetaArea=true;
|
||||||
|
//metadata RegExp (start with #; maybe somme spaces; : ; maybe somme space; datas)
|
||||||
|
var meta=/^#\s*([A-Za-z]+)\s*:\s*(.*)$/;
|
||||||
|
var dat=new data();
|
||||||
|
function readmeta(line){
|
||||||
|
// get key value
|
||||||
|
var match=line.match(meta);
|
||||||
|
// normalize key to lower
|
||||||
|
var key=match[1].toLowerCase();
|
||||||
|
//if data has value
|
||||||
|
if(match.length==3 && match[2]) {
|
||||||
|
var val=match[2];
|
||||||
|
switch(key) {
|
||||||
|
case "title":
|
||||||
|
dat.title=val;
|
||||||
|
break;
|
||||||
|
case "code":
|
||||||
|
var vals=val.split(",")
|
||||||
|
if(vals.length>=2){
|
||||||
|
dat.code=new code(vals[0],vals[1]);
|
||||||
|
} else {
|
||||||
|
dat.code=new code(vals[0],null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "basis":
|
||||||
|
var vals=val.split(",")
|
||||||
|
if(vals.length>=2){
|
||||||
|
dat.basis=new basis(vals[0],vals[1])
|
||||||
|
} else {
|
||||||
|
dat.basis=new basis(vals[0],null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "doi":
|
||||||
|
dat.doi=new doi(val);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function readrow(line){
|
||||||
|
var vals=line.split(/\s+/);
|
||||||
|
var start=new state(vals[0],vals[1],vals[2]);
|
||||||
|
var end=new state(vals[3],vals[4],vals[5]);
|
||||||
|
var ex=new excitation(start,end,vals[6]);
|
||||||
|
dat.excitations.push(ex);
|
||||||
|
};
|
||||||
|
|
||||||
|
text.split("\n").forEach(function(line) {
|
||||||
|
//if it's not empty line
|
||||||
|
line=line.trim();
|
||||||
|
if (line){
|
||||||
|
//if # may be metadata or comment
|
||||||
|
if (line.charAt(0)=="#") {
|
||||||
|
//if it's metadata
|
||||||
|
if(ismetaArea && meta.test(line)) {
|
||||||
|
readmeta(line);
|
||||||
|
}
|
||||||
|
} else { //else its row
|
||||||
|
ismetaArea=false;
|
||||||
|
readrow(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return dat
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
3
scripts/getFullDataPath.js
Normal file
3
scripts/getFullDataPath.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
function getFullDataPath(path) {
|
||||||
|
return 'data/' + path;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user