From f008f64441cf6d8cbce2f242ef74759dc847e6bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ole=20Sch=C3=BCtt?= Date: Wed, 2 Aug 2023 14:44:17 +0200 Subject: [PATCH] Docs: Remove XSLT-based manual --- docs/_static/cp2k_manual_logo.png | Bin 39 -> 60011 bytes .../_static}/cp2k_manual_logo.svg | 0 docs/_static/favicon.png | Bin 30 -> 966 bytes {tools/manual => docs/_static}/favicon.svg | 0 tools/docker/Dockerfile.test_manual | 3 +- tools/docker/generate_dockerfiles.py | 3 +- tools/manual/README | 14 - tools/manual/collapsibleList.js | 245 ----- tools/manual/cp2k_input.xsl | 849 ------------------ tools/manual/cp2k_manual_logo.png | Bin 60011 -> 0 bytes tools/manual/favicon.png | Bin 966 -> 0 bytes tools/manual/generate_sitemap.py | 49 - tools/manual/index.html | 200 ----- tools/manual/toggle_folding.js | 410 --------- tools/manual/update_manual | 42 - tools/manual/xml2htm | 13 - 16 files changed, 2 insertions(+), 1826 deletions(-) mode change 120000 => 100644 docs/_static/cp2k_manual_logo.png rename {tools/manual => docs/_static}/cp2k_manual_logo.svg (100%) mode change 120000 => 100644 docs/_static/favicon.png rename {tools/manual => docs/_static}/favicon.svg (100%) delete mode 100644 tools/manual/README delete mode 100644 tools/manual/collapsibleList.js delete mode 100644 tools/manual/cp2k_input.xsl delete mode 100644 tools/manual/cp2k_manual_logo.png delete mode 100644 tools/manual/favicon.png delete mode 100755 tools/manual/generate_sitemap.py delete mode 100644 tools/manual/index.html delete mode 100644 tools/manual/toggle_folding.js delete mode 100755 tools/manual/update_manual delete mode 100755 tools/manual/xml2htm diff --git a/docs/_static/cp2k_manual_logo.png b/docs/_static/cp2k_manual_logo.png deleted file mode 120000 index 3d06c1f62f..0000000000 --- a/docs/_static/cp2k_manual_logo.png +++ /dev/null @@ -1 +0,0 @@ -../../tools/manual/cp2k_manual_logo.png \ No newline at end of file diff --git a/docs/_static/cp2k_manual_logo.png b/docs/_static/cp2k_manual_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4e6a04d0d5632393292e9e76828807e4a31a0f GIT binary patch literal 60011 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 z -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 omQ`VGeRaLGM&1 | tee report.log diff --git a/tools/docker/generate_dockerfiles.py b/tools/docker/generate_dockerfiles.py index dd9605a126..ed226c7cd9 100755 --- a/tools/docker/generate_dockerfiles.py +++ b/tools/docker/generate_dockerfiles.py @@ -230,9 +230,8 @@ def manual() -> str: install_cp2k(version="psmp", arch="local", revision=True) + rf""" # Generate manual. -COPY ./tools/manual ./tools/manual -COPY ./tools/input_editing ./tools/input_editing COPY ./docs ./docs +COPY ./tools/input_editing ./tools/input_editing COPY ./tools/docker/scripts/test_manual.sh . ARG ADD_EDIT_LINKS=yes RUN ./test_manual.sh "${{ADD_EDIT_LINKS}}" 2>&1 | tee report.log diff --git a/tools/manual/README b/tools/manual/README deleted file mode 100644 index 2be4ce4159..0000000000 --- a/tools/manual/README +++ /dev/null @@ -1,14 +0,0 @@ -A CP2K input description can be generated automatically by - -(1) running any up-to-date CP2K executable with the --xml flag - to generate the XML database file cp2k_input.xml with the - CP2K input description: - - /cp2k. --xml - -(2) creating a HTML document from the XML dump based on an - XSL description, e.g. using Xalan: - - ./xml2htm - -Please, check xml2htm for further details. diff --git a/tools/manual/collapsibleList.js b/tools/manual/collapsibleList.js deleted file mode 100644 index 77cb75ba51..0000000000 --- a/tools/manual/collapsibleList.js +++ /dev/null @@ -1,245 +0,0 @@ -/***************************************************************************************************************** - Automatic collapsible list generation script written by Mark Wilton-Jones - 2002 -Version 3.0 - updated May 2004 to allow cookies to remember the collapse state - fully compatible with original script -****************************************************************************************************************** - -Please see http://www.howtocreate.co.uk/jslibs/ for details and a demo of this script -Please see http://www.howtocreate.co.uk/jslibs/termsOfUse.html for terms of use -_________________________________________________________________________ - -You can put as lists on the page as you like, each list may have a different format - -To use: -_________________________________________________________________________ - -Inbetween the tags, put: - - - -If you want to be able to remember the expand/collapse state of all the branches so that it remains -open if you open a new page or return to the page, you will also need to include my cookie script -(available from http://www.howtocreate.co.uk/jslibs/) - - -_________________________________________________________________________ - -For best results, all images should be the same height, slightly taller than -the text around them. I would recommend about 21px. - -Now, wherever you want the list (not in a layer or positioned element due -to Netscape 4 style bug), put: - - - -_________________________________________________________________________ - -To trigger saving of expand/collapse state of all branches in all lists where you have specified a cookie name, use: - - saveCollapseState(lifeTime) - -lifeTime is optional (defaults to browser session) and specifies the amount of time (in seconds) -to remember the expand/collapse state of all branches - -Usually, this would be used onunload, eg. - -******************************************************************************************************* - And here's the actual code -******************************************************************************************************/ - -window.collapsibleListRef = []; window.imageCache = []; window.autoCloseRef = []; -//iCab can change display, but does not say so, and does notunderstand '' so I use a browser detect -var is_Icab = window.ScriptEngine && ScriptEngine().indexOf( 'InScript' ) + 1; - -function collapsibleList() { - //hold tree information about the list and the images used - this.treeImg = arguments[0]; - this.expdImg = arguments[1]; - this.isAutoClose = arguments[2]; - this.subClass = arguments[3]; - this.sub = []; -} - -function sub() { - //hold information about the list item - this.text = arguments[0]; - this.expanded = arguments[1]; - this.sub = []; -} - -//done because WebTV does not understand inline object syntax -function ColLexPdOb(plI,miI,oSv,oAc) { this.plI = plI; this.miI = miI; this.subs = []; this.saveName = oSv; this.autoCol = oAc; } -function ColLexPdIT(name,expanded) { this.name = name; this.expanded = expanded; } - -function createList(listObject,currentExt,imgExt,oLev,oBase) { - if( !currentExt || !currentExt.match(/^treeList_\d+(_\d+)+$/) ) { - //create the list, start by defining aditional stuff that is required, counting the lists etc. - window.collapsibleListRef[window.collapsibleListRef.length] = new ColLexPdOb( listObject.expdImg[4], listObject.expdImg[5], currentExt, listObject.isAutoClose ); - currentExt = 'treeList_'+( window.collapsibleListRef.length - 1 ); imgExt = ''; oLev = 0; oBase = listObject; - document.write( '

' ); - oBase.menuUniqueNum = window.collapsibleListRef.length - 1; window.autoCloseRef[oBase.menuUniqueNum] = []; - } - document.write( '' ); - for( var x = 0; x < listObject.sub.length; x++ ) { - //for every child object, create their line - document.write( - //the line break on all except the very first line - ( ( oLev || x ) ? '\n
' : '' ) + - //what may or may not remain of the trunk - ( ( oBase.subClass && oBase.subClass[oLev] && oBase.subClass[oLev][listObject.sub[x].sub.length?1:0] && !( document.layers && navigator.mimeTypes['*'] ) ) ? ( '' ) : '' ) + imgExt + - //this branch - ( oLev ? '' + ( ( x < listObject.sub.length - 1 ) ? '|-' : '`-' ) + '' : '' ) + - //the expand / collapse link or not as the case may be - ( listObject.sub[x].sub.length ? '[+/-] ' : '----- ' ) + - //the text of the branch - listObject.sub[x].text + ( ( oBase.subClass && oBase.subClass[oLev] && oBase.subClass[oLev][listObject.sub[x].sub.length?1:0] && !( document.layers && navigator.mimeTypes['*'] ) ) ? '' : '' ) - ); - if( listObject.sub[x].sub.length ) { - //add the span id to a list so we can easily find it and collapse it later - window.collapsibleListRef[window.collapsibleListRef.length - 1].subs[window.collapsibleListRef[window.collapsibleListRef.length - 1].subs.length] = new ColLexPdIT( currentExt + '_' + x, listObject.sub[x].expanded && !oBase.isAutoClose ); - //create children - createList( listObject.sub[x], currentExt + '_' + x, oLev ? ( imgExt + ( ( x < listObject.sub.length - 1 ) ? '| ' : '  ' ) ) : '', oLev + 1, oBase ); - } - } - document.write( '
' ); - if( !oLev ) { - //end the list and prepare to collapse as soon as the browser lays it out - document.write( '

\n' ); - if( document.all || document.getElementById ) { window.setTimeout('prepareForUse('+(window.collapsibleListRef.length-1)+')',100); } - } -} - -function expandList(spanName,imgName,plsImg,minImg,oMenu,oLevel,oAutoClose) { - var theSpan = document.getElementById ? document.getElementById(spanName) : document.all ? document.all[spanName] : (new Object()); - if( !theSpan ) { return; } if( theSpan.style ) { theSpan = theSpan.style; } - if( typeof( theSpan.display ) == 'undefined' && !is_Icab ) { - //if we could not access the span element or if its display style cannot be changed, say so - window.alert( 'Sorry, your browser cannot collapse or expand these lists\nso the lists will remain constantly expanded.' ); - } else { - //if required, collapse back down again - for( var y = window.autoCloseRef[oMenu].length - 1; y >= oLevel; y-- ) { - if( window.autoCloseRef[oMenu][y] && oAutoClose && window.autoCloseRef[oMenu][y][0] != spanName ) { - var theSpan2 = document.getElementById ? document.getElementById(window.autoCloseRef[oMenu][y][0]) : document.all ? document.all[window.autoCloseRef[oMenu][y][0]] : (new Object()); - if( theSpan2.style ) { theSpan2 = theSpan2.style; } theSpan2.display = 'none'; - document.images[window.autoCloseRef[oMenu][y][1]].src = window.autoCloseRef[oMenu][y][2]; - window.autoCloseRef[oMenu][y] = null; - } - } - if( theSpan.display == 'none' ) { window.autoCloseRef[oMenu][oLevel] = [spanName,imgName,plsImg]; } - //expand / collapse the list and change the image - theSpan.display = ( theSpan.display == 'none' ) ? ( is_Icab ? 'inline' : '' ) : 'none'; - document.images[imgName].src = theSpan.display ? plsImg : minImg; - } -} - -function prepareForUse(listNum) { - if( !window.collapsibleListRef[listNum].subs.length ) { return; } //no branches to collapse - var lastPart = window.collapsibleListRef[listNum].subs[window.collapsibleListRef[listNum].subs.length - 1].name; - lastPart = document.getElementById ? document.getElementById(lastPart) : document.all[lastPart]; - //if the page has not loaded enough, try again later - if( !lastPart ) { window.setTimeout('prepareForUse('+listNum+')',100); } else { - //if their browser cannot change the display style, don't try - if( lastPart.style ) { lastPart = lastPart.style; } - if( typeof( lastPart.display ) == 'undefined' && !is_Icab ) { return; } - //cache images for faster changes - window.imageCache[listNum] = [(new Image()),(new Image())]; - window.imageCache[listNum][0].src = window.collapsibleListRef[listNum].plI; - window.imageCache[listNum][1].src = window.collapsibleListRef[listNum].miI; - var svNm; if( svNm = window.collapsibleListRef[listNum].saveName ) { svNm = retrieveCookie(svNm); } - if( typeof( svNm ) == 'string' ) { svNm = svNm.split(','); } - for( var x = 0; x < window.collapsibleListRef[listNum].subs.length; x++ ) { - var lastPart = window.collapsibleListRef[listNum].subs[x]; - if( svNm ) { var thisArray = mwjInArray(lastPart.name,svNm); } - if( ( svNm && thisArray ) || ( !svNm && lastPart.expanded ) ) { - //if they want it expanded by default, just change the image - document.images[lastPart.name + '_img'].src = window.imageCache[listNum][1].src; - } else { - //collapse the branch and change the image - document.images[lastPart.name + '_img'].src = window.imageCache[listNum][0].src; - lastPart = document.getElementById ? document.getElementById(lastPart.name) : document.all[lastPart.name]; - if( lastPart.style ) { lastPart = lastPart.style; } - lastPart.display = 'none'; - } - } - } -} - -function mwjInArray(oNeed,oHay) { for( var i = 0; i < oHay.length; i++ ) { if( oNeed == oHay[i] ) { return true; } } return false; } - -function saveCollapseState(oLife) { - var allSpans = document.getElementsByTagName ? document.getElementsByTagName('span') : ( document.all ? document.all.tags('SPAN') : [] ); - if( !allSpans.length ) { return; } //nothing to save - //try to minimise the number of comparisons, to save processor time - for( var x = 0, saveNums = ''; window.collapsibleListRef[x]; x++ ) { - if( !window.collapsibleListRef[x].autoCol && window.collapsibleListRef[x].saveName ) { saveNums += ( saveNums ? '|' : '' ) + x; } } - if( !saveNums ) { return; } //nothing to save - for( var x = 0, brnch = [], frNm, rgxp = new RegExp('^treeList_('+saveNums+')_.*$',''); x < allSpans.length; x++ ) { - if( allSpans[x].id && allSpans[x].id.match(rgxp) && allSpans[x].style.display != 'none' ) { - frNm = allSpans[x].id.replace(rgxp,'$1'); - brnch[frNm] = ( brnch[frNm] ? ( brnch[frNm] + ',' ) : '' ) + allSpans[x].id; - } - } - for( var x = 0, saveNums = ''; window.collapsibleListRef[x]; x++ ) { - if( window.collapsibleListRef[x].saveName ) { setCookie(window.collapsibleListRef[x].saveName,brnch[x],oLife,'/'); } } -} diff --git a/tools/manual/cp2k_input.xsl b/tools/manual/cp2k_input.xsl deleted file mode 100644 index 935cfa44af..0000000000 --- a/tools/manual/cp2k_input.xsl +++ /dev/null @@ -1,849 +0,0 @@ - - - - - - - - - - - - - - CP2K input reference - - - - - - - -

CP2K input reference

-

Version information

-

- This HTML manual refers to - - () - - and was generated automatically from a CP2K executable compiled on using the - --xml command line option (see how to generate this manual). - Thus the manual describes exactly this version of the code. -

-

- -

-

Journal papers

-

- List of references cited in the CP2K input manual. -

-

CP2K units

-

- Available units of measurement which can be used in the CP2K input for keyword values. - The units can be used to specify an alternative unit of measurement for keyword values, for which a - default unit has been explicitly defined. - They are specified in the form of a string [unit] as a separate token before any value. - A unit specification is applied to all values on the same line following that specification, unless explicitly - overwritten by a another unit specification. -

-

Internal input preprocessor

-

- Before the input is parsed, the input is run through a simple internal preprocessor. - The preprocessor recognizes the following directives independent of capitalization: -

-
-
@INCLUDE 'filename.inc'
-
- The file referenced by filename.inc is included into the input file and parsed. - Recursive inclusions are not allowed and the files have to exist in the current working - directory. There can be only one @INCLUDE statement per line. Single or double quotes - have to be used if the filename contains blanks. -
-
@SET VAR value
-
- Assigns the text value to the preprocessing variable VAR. value - is the text following VAR with the outer whitespace removed. The variable can be - recalled with a ${VAR} (or $VAR) statement. There can be only one @SET statement per line. - A variable name can only contain alphanumerical characters plus the underscore and must not start with a number. -
-
${VAR} or $VAR
-
- Expand the variable VAR. The text ${VAR} (or $VAR) is replaced - with the value assigned to VAR in the last @SET directive. - There can be multiple variable statements per line. The expansion process is repeated - until no more variables are found. -
-
${VAR-DEFAULT}
-
- Expand the variable VAR if defined. The text ${VAR-DEFAULT} is replaced - with the value assigned to VAR in the last @SET directive if defined, - otherwise with the value specified after the dash - (here: DEFAULT). -
-
@IF / @ENDIF
-
- Conditional block. The text from the @IF line up to the next line with a valid - @ENDIF is skipped, if the expression following @IF resolves to false. - Available expressions are lexical comparisons for equality '==' or inequality '/='. - If none of the two operators are found, a '0' or whitespace resolves to false - while any text resolves to true. @IF/@ENDIF blocks cannot be nested and - cannot span across files. There can be only one test (== or /=) per @IF statement. -
-
-

Input structure

- All sections that can be part of a CP2K input file are shown here with their allowed nestings. - A detailed description of each section and its keywords can be obtained by clicking on the - section links. The links in the detailed descriptions switch back to the corresponding index - entries. In this way a toggling between the index and the detailed description is feasible. -

Index of all input sections

-
    -
  • - Double click on [−] / [+] to shrink or expand all subtrees contained in a section -
  • -
  • - Single click on [−] / [+] to shrink or expand the top level subtree contained in a section -
  • -
-

Last update:

- - - - - - - - - CP2K input file - - - - - - - - -

CP2K input file

-
    -
  • - Input file of CP2K -
  • -
- -
    -
  • - This section cannot be repeated. -
  • -
-
    -

    Subsections

    - - -
      -
    • - -
    • -
    -
    -
-
    -

    Keywords

    -
      -
    • - none -
    • -
    -
- - - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Back to the main page of this manual - - Input reference of - - -
-
-
- - - -
- - - - - -
- Back to the main page of this manual or the CP2K home page - - (Last update: - ..) -
-
- - -
- - - - -
-
- - - - -
    - - - - - -
  • - -
  • - - - - <xsl:value-of select="replace($local_path,'/',' / ')" /> - - - - - - - - -

    Section

    -
      -
    • - - - - - - Without description, yet. - - - - - -
    • -
    -
      -
    • - Section path: - - - - - - - -
    • -
    -
      -
    • - This section cannot be repeated. -
    • -
    - -
      -
    • - This section cites the following references: - - - [] - -
    • -
    -
    -
      -
    • -

      Subsections

      - - -
        - - - -
      • - -
      • -
        -
      -
      - -
        -
      • - none -
      • -
      -
      -
      -
    • -
    -
      -
    • -

      Keywords

      - - - - - - - - - - - - - - - - - - - -
        -
      • - none -
      • -
      -
      -
      -
    • -
    - -
      -
    • -

      Keyword descriptions

      - - - - - - - - - - - - - - - - - - - - - - - - -
    • -
    -
    - - - - - -
    - - - - -
    -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
- - - - - - - - - - - & - - - - - - - - - - - - - -  {} ... - -  or a range {}..{} - - - - -
- - - -

- This keyword was removed. - -

-
- -

- This keyword is deprecated. - -

-
- - - - - Without description, yet. - -
- - - -
- - This keyword cannot be repeated - and it expects - - a list of s. - - - precisely one . - - - precisely  s. - -
- - - The lone keyword behaves as a switch to - - .TRUE. - .FALSE. - - - - The lone keyword defaults to - - - - -
- - Default values: - - - - .TRUE. - .FALSE. - - - - - - -
- - Default unit: - - [] - -
- - List of valid keywords: -
    - - -
  • -
    -
    - - - -
    -
    - - - - - - Without description, yet. - - -
    -
    -
  • -
    -
-
- - Alias names for this keyword: - - - - - - - - , - - - -
- - This keyword cites the following references: - - - [] - -
-
-
-
- - - - - - - - / - - - - - - - - - - - - - - - - - - - How to generate the CP2K input reference manual - - - - - - - - -

How to generate the CP2K input reference manual

-
    -
  • - Prepare a CP2K executable. It does not matter which type of CP2K executable (e.g. psmp) you are using, - since running a CP2K executable with the flag --xml like: -
      -
    • cp2k.psmp --xml
    • -
    - will generate a file named cp2k_input.xml with an XML dump of the entire CP2K input structure - in the same directory describing all features of the actual CP2K executable.
    - That XML output in cp2k_input.xml has to be transformed to HTML using an XML 2.0 compliant - translator like SAXON. Preferentially, you may want to employ the platform independent Java version of SAXON, which - can be downloaded from https://sourceforge.net/projects/saxon.
    -
  • -
  • - Alternatively, you can also run the script -
      -
    • update_manual local psmp
    • -
    - in the folder cp2k/tools/manual/ which will perform all steps using the CP2K executable cp2k/exe/local/cp2k.psmp. -
  • -
  • - Launch your favorite web browser and load the generated index.html file, e.g. in cp2k/tools/manual/local/psmp - from the previous step. -
  • -
  • - Happy browsing! -
  • -
- - - - - -
-
- - - - - - - -  [Edit on GitHub] - - - - - - - - - Supported HTML entities and tags - - - - - - - - -

List of HTML tags supported by CP2K

-

The following HTML tags are supported by CP2K within the input descriptions:

-
    - -
  • - -
  • -
    -
-

Table of HTML entities supported by CP2K

-

The following HTML entities are supported by CP2K within the input descriptions:

- - - - - - - - - - - - - -
NameCodeCharacter
- - - - - -
-
- - - - - -  {} - - - - - - - - - -
diff --git a/tools/manual/cp2k_manual_logo.png b/tools/manual/cp2k_manual_logo.png deleted file mode 100644 index ce4e6a04d0d5632393292e9e76828807e4a31a0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60011 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 z -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 omQ`VGeRaLGM\n') - f.write('\n') - f.write("\n".join(entries)) - f.write("\n\n") - f.close() - print("Wrote " + fn_out) - - -# =============================================================================== -main() diff --git a/tools/manual/index.html b/tools/manual/index.html deleted file mode 100644 index 96f34eb8b4..0000000000 --- a/tools/manual/index.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - -CP2K Input Reference Manual - - - - - - -
-

Logo

-
- - -
-
- -
- - - - -
- - -
-
-
- - - - - - - - - - - diff --git a/tools/manual/toggle_folding.js b/tools/manual/toggle_folding.js deleted file mode 100644 index 7be78d05c4..0000000000 --- a/tools/manual/toggle_folding.js +++ /dev/null @@ -1,410 +0,0 @@ -/****** toggle_folding/main - * PURPOSE - * Allow collapsible section tree in CP2K manual - * USAGE - * load this script in the header of the CP2K manual font page or - * the template file. - * - * If javascript is enabled, then the user should see [-] buttons in - * front of all section titles. And: - * - * - Single clicking on a [-]/[+] button folds/unfolds the - * subsection tree - * - Double clicking on a [-]/[+] button folds/unfolds the entire - * subsection tree recursively. - * - * The buttons are defined as HTML elements, and have class name - * "button", and one can change its font and appearance by setting - * the corresponding style for .button in the CSS. - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -// add the folding buttons to the manual tree -document.addEventListener('DOMContentLoaded', parse_manual, false); -/*****/ - -/****** toggle_folding/parse_manual - * PURPOSE - * Parses the CP2K manual front page and addes the tree folding - * buttons to section titles - * USAGE - * parse_manual(); - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function parse_manual() { - // find the first element with id "CP2K_INPUT.html" - var root = document.getElementById("CP2K_INPUT.html"); - // the parent element of root is the section title element - var root_section = root.parentNode; - // parse the root_section recursively - add_button_recursively(root_section); - return; -} -/*****/ - -/****f* toggle_folding/add_button_recursively - * PURPOSE - * Recursively adds the tree-folding buttons to a section tree - * Inserts a blank button if a section does not subsections - * USAGE - * add_button_recursively(section) - * INPUTS - * section: the HTML
  • element in the CP2K input list containing - * the section title - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function add_button_recursively(section) { - var button; - var title_element = first_element_child(section); - var subsections = next_element_sibling(section); - var subsection = subsections ? first_element_child(subsections) : null; - // only add button if the subsections are not empty - if (title_element) { - // add button if the subsections are not empty - if (subsection) { - button = make_button("[\u2212]", "toggle"); - section.insertBefore(button, title_element); - } - // otherwise add a blank - else { - button = make_button("\u00a0\u00a0\u00a0", "blank"); - section.insertBefore(button, title_element); - } - } - // do this recursively for all subsections - while (subsection) { - // the element is a section title and only needs parsing if it - // contains an link element with a non-null id - if (first_element_child(subsection).id) { - add_button_recursively(subsection); - // skip the subsections of the subsection - subsection = next_element_sibling(subsection); - } - subsection = next_element_sibling(subsection); - } - return; -} -/*****/ - -/****f* toggle_folding/make_button - * PURPOSE - * Makes a button element, in the form of - * text - * - * If the button is of the type "blank", then it will not be - * clickable, and will have the data-folding set to blank. The blank - * buttons are used as place-holders to keep of section titles - * properly aligned. - * USAGE - * make_button("[-]") - * INPUTS - * text: the text "image" of the button - * type: "toggle" | "blank" - * RETURN VALUE - * a new element representing a button - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function make_button(text, type) { - var button; - var button_text; - button = document.createElement("a"); - button_text = document.createTextNode(text.concat(" ")); - button.appendChild(button_text); - button.className = "button"; - switch (type) { - case "toggle": - // add onclick attribute - button.setAttribute("onclick", "toggle(event)"); - // for recording double click - button.setAttribute("data-dblclick", "nil"); - // for recording the open and closed status - button.setAttribute("data-folding", "open"); - break; - case "blank": - default : - button.setAttribute("data-folding", "blank"); - } - return button; -} -/*****/ - -/****f* toggle_folding/toggle_button - * PURPOSE - * Toggle the button element to open or close status - * Do nothing if the button is blank - * USAGE - * toggle_button(button, "open") - * INPUTS - * button: the element representing button to toggle - * openOrClose: "open" | "close" - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function toggle_button(button, openOrClose) { - if (button.getAttribute("data-folding") === "blank") - return; - if (openOrClose === "open") { - button.setAttribute("data-folding", "open"); - button.innerHTML = button.innerHTML.replace('[+]', '[\u2212]'); - } - else if (openOrClose === "close") { - button.setAttribute("data-folding", "close"); - button.innerHTML = button.innerHTML.replace('[\u2212]', '[+]'); - } - return; -} -/*****/ - -/****f* toggle_folding/toggle - * PURPOSE - * Event interface function for putting functionality for folding and - * unfolding the section trees in CP2K manual. - * - * - single click on the [-] or [+] in front of section headings - * should fold/unfold the subtree corresponding to the section. - * - * - double click on the [-] or [+] in front of section headings - * should fold/unfold the section subtree recursively. - * - * Note that one cannot use ondbclick attribute in HTML togeter with - * onclick, as onclick will always fire first upon the first mouse - * click. This function provides a work-around solution to this - * problem. - * - * The local variable delay controls the interval between the - * double-clicks. - * USAGE - * Set onclick attribute to toggle(event) - * INPUTS - * Mouse clicking event - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function toggle(event) { - var delay = 300; // in milliseconds - var el = event.target; - var section = el.parentNode; - if (el.getAttribute("data-dblclick") === "nil") { - el.setAttribute("data-dblclick", "t"); - setTimeout( - function() { - if (el.getAttribute("data-dblclick") === "t") { - // single click registered - toggle_folding(section, false); - } - el.setAttribute("data-dblclick", "nil"); - }, - delay); - } - else { - el.setAttribute("data-dblclick", "nil"); - // double click registered - toggle_folding(section, true); - } - return; -} -/*****/ - -/****f* toggle_folding/toggle_folding - * PURPOSE - * Toggling folding and unfolding of subsections, recursively if - * asked to. - * USAGE - * toggle_folding(section, recursive) - * INPUTS - * section: the HTML
  • element containing the section title, - * corresponds to the section to be folded/unfolded - * recursive: true | false, whether to do it recursively or not - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function toggle_folding(section, recursive) { - if (! section) - return; - // get the next non-text sibling - var subsections = next_element_sibling(section); - if (! subsections) - return; - var button = first_element_child(section) - if (button.className !== "button") - return; - if (button.getAttribute("data-folding") === "close") - toggle_subtree(section, "open", recursive) - else if (button.getAttribute("data-folding") === "open") - toggle_subtree(section, "close", recursive) - return; -} -/*****/ - -/****f* toggle_folding/toggle_subtree - * PURPOSE - * The main driver function for doing the folding and unfolding of - * subsections - * - * If openOrClose == "open", then open the section tree, and - * recursively open the section trees of the subsections if - * recursive == true. Similarly, openOrClose == "close" closes the - * section tree and recursively so if recursive == true. - * - * This function assumes that: the non-text element where the - * folding function is triggered is always the title of the section. - * The next non-text element should be the list of subsections. All - * one needs to do, therefore, is to hide the subsections, i.e. the - * next non-text element. - * USAGE - * toggle_folding(section, "open", false) - * INPUTS - * section: the HTML
  • element containing the section title, - * corresponds to the section to be folded/unfolded - * openOrClose: "open" | "close" - * recursive: true | false, whether to do it recursively or not - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function toggle_subtree(section, openOrClose, recursive) { - if (! section) - return; - var subsections = next_element_sibling(section); - if (! subsections) - return; - var button = first_element_child(section) - if (button.className !== "button") - return; - if (openOrClose === "open") { - subsections.style.display = ''; - toggle_button(button, "open"); - } - else if (openOrClose === "close") { - subsections.style.display = "none"; - toggle_button(button, "close"); - } - else { - return; - } - // (un)fold recursively - if (recursive) { - var subsection = first_element_child(subsections); - while (subsection) { - // dump(subsection) - if (first_element_child(subsection) && - (first_element_child(subsection).className === "button")) { - toggle_subtree(subsection, openOrClose, true); - subsection = next_element_sibling(subsection); - } - subsection = next_element_sibling(subsection); - } - } - return; -} -/*****/ - -/****f* toggle_folding/first_element_child - * PURPOSE - * find the first non-text (element) child of a HTML element - * USAGE - * child = first_element_child(element) - * INPUTS - * node: the HTML element in question - * RETURN VALUE - * the first non-text child of node - * returns null if node has no children - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function first_element_child(node) { - var el = node.firstChild; - while (el && el.nodeType !== 1) - el = el.nextSibling; - return el; -} -/*****/ - -/****f* toggle_folding/next_element_sibling - * PURPOSE - * find the next non-text (element) sibling of a HTML element - * USAGE - * sibling = next_element_sibling(element) - * INPUTS - * node: the HTML element in question - * RETURN VALUE - * the next non-text (element) sibling of node - * returns null if node is the last element of its parent - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function next_element_sibling(node) { - var el = node.nextSibling; - while (el && el.nodeType !== 1) - el = el.nextSibling; - return el; -} -/*****/ - -/****f* toggle_folding/dump - * PURPOSE - * For debugging. Dumps the contents of a HTML element via alert - * USAGE - * dump(element) - * INPUTS - * element: the HTML element in question - * AUTHOR - * L.Tong - * CREATION DATE - * 2013/11/06 - * MODIFICATION HISTORY - * SOURCE - */ -function dump(element) { - var a = ["Element dump:"]; - for (var k in element) { - if (element.hasOwnProperty(k)) { - a.push(k + ": " + element[k]); - } - } - a.push("HTML: " + element.innerHTML); - alert(a.join('\n')); -} -/*****/ diff --git a/tools/manual/update_manual b/tools/manual/update_manual deleted file mode 100755 index a34df1db78..0000000000 --- a/tools/manual/update_manual +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -cwd=${PWD} -if [[ -z $1 ]]; then - arch=local -else - arch=$1 - shift -fi -if [[ -z $1 ]]; then - version=psmp -else - version=$1 - shift -fi -cp2kexe=${cwd}/../../exe/${arch}/cp2k.${version} -echo "CP2K executable: ${cp2kexe}" -version_string=$(${cp2kexe} -v | head -1) -if [[ -n $(echo ${version_string} | grep Development) ]]; then - version_string=trunk -else - version_string=$(echo "${version_string}" | awk '{print $3}') -fi -echo Update CP2K manual: ${version_string} -if [[ -z $1 ]]; then - mandir=${arch}/${version} -else - mandir=$1 - shift -fi -echo "CP2K manual path: ${mandir}" -if [[ -s ${cp2kexe} ]]; then - [[ -d ${mandir} ]] && rm -rf ${mandir} - mkdir -p ${mandir} - cp collapsibleList.js cp2k_input.xsl cp2k_manual_logo.png cp2k_manual_logo.svg favicon.png favicon.svg toggle_folding.js xml2htm ../input_editing/vim/vim.xsl ${mandir} - cd ${mandir} - ${cp2kexe} --xml - ./xml2htm ${version_string} - echo "CP2K manual update done." - cd ${cwd} >/dev/null -else - echo "ERROR in $(basename $0): CP2K executable file ${cp2kexe} not found" -fi diff --git a/tools/manual/xml2htm b/tools/manual/xml2htm deleted file mode 100755 index c7c3b6e7bb..0000000000 --- a/tools/manual/xml2htm +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -# Provide path to saxon -# Java version from http://sourceforge.net/projects/saxon -export SAXON=${SAXON:-~/bin/saxon9he.jar} - -if [[ -z $1 ]]; then - java -Xmx256m -jar $SAXON -o:index.html cp2k_input.xml cp2k_input.xsl add_edit_links=no -else - java -Xmx256m -jar $SAXON -o:index.html cp2k_input.xml cp2k_input.xsl add_edit_links=no version=$1 -fi -# Update the CP2K syntax file for the (g)vim editor -java -Xmx256m -jar $SAXON -o:cp2k.vim cp2k_input.xml vim.xsl