From e9317c2366bb6fb9b6079e81e58598ff7041682a Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Mon, 24 Jul 2023 12:23:30 +0800 Subject: 😶â€ðŸŒ«ï¸Push LaTeX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.aux | 16 ++++++ src/main.fdb_latexmk | 37 ++++++++++++ src/main.fls | 100 ++++++++++++++++++++++++++++++++ src/main.log | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/main.pdf | Bin 0 -> 52923 bytes src/main.synctex.gz | Bin 0 -> 6776 bytes src/main.tex | 65 +++++++++++++++++++++ 7 files changed, 376 insertions(+) create mode 100644 src/main.aux create mode 100644 src/main.fdb_latexmk create mode 100644 src/main.fls create mode 100644 src/main.log create mode 100644 src/main.pdf create mode 100644 src/main.synctex.gz create mode 100644 src/main.tex diff --git a/src/main.aux b/src/main.aux new file mode 100644 index 0000000..8778f01 --- /dev/null +++ b/src/main.aux @@ -0,0 +1,16 @@ +\relax +\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {II}Features}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}Lexer Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Parser Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Built-in Types Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-D}}Error Handling Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-E}}Execution Environment Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-F}}Interpreter Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-G}}Mathematics Foundation Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-H}}Documentation Module}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {III}Getting Started}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {IV}Keywords}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {V}Contribution}{1}{}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {VI}License}{1}{}\protected@file@percent } +\gdef \@abspage@last{1} diff --git a/src/main.fdb_latexmk b/src/main.fdb_latexmk new file mode 100644 index 0000000..e60c234 --- /dev/null +++ b/src/main.fdb_latexmk @@ -0,0 +1,37 @@ +# Fdb version 4 +["pdflatex"] 1690172592 "f:/HsiangNianian/psi/src/main.tex" "main.pdf" "main" 1690172595 0 + "f:/HsiangNianian/psi/src/main.tex" 1690172588 2249 14014709aa12192f398d5ef2723c5576 "" + "f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc" 1686596455 4850 80dc9bab7f31fb78a000ccfed0e27cab "" + "f:/texlive/2023/texmf-dist/fonts/map/fontname/texfonts.map" 1686596844 3524 cb3e574dea2d1052e39280babc910dc8 "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm" 1686599988 2172 fd0c924230362ff848a33632ed45dc23 "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm" 1686599988 4524 6bce29db5bc272ba5f332261583fee9c "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm" 1686599988 2228 e564491c42a4540b5ebb710a75ff306c "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm" 1686599988 4480 10409ed8bab5aea9ec9a78028b763919 "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm" 1686599988 2124 2601a75482e9426d33db523edf23570a "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm" 1686599988 4408 25b74d011a4c66b7f212c0cc3c90061b "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmrc7t.tfm" 1686599988 2680 312a2d12b1f1df8ee0212e7ba1962402 "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm" 1686599988 2288 f478fc8fed18759effb59f3dad7f3084 "" + "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm" 1686599988 4640 532ca3305aad10cc01d769f3f91f1029 "" + "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1686599988 44729 fea0975e20ec51c992338362f05f1146 "" + "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb" 1686599988 44656 0cbca70e0534538582128f6b54593cca "" + "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1686599988 46026 687528a208fbfc1f00832bb96cccebbb "" + "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1686599988 45458 504e2b06fa82109d168c7a0afb09e145 "" + "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf" 1686599988 1372 788387fea833ef5963f4c5bffe33eb89 "" + "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmbi7t.vf" 1686599988 1384 6ac0f8b839230f5d9389287365b243c0 "" + "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf" 1686599988 1380 0ea3a3370054be6da6acd929ec569f06 "" + "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmrc7t.vf" 1686599988 1948 7330aeef3af211edff3b35fb2c12a0fd "" + "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf" 1686599988 1384 a9d8adaf491ce34e5fba99dc7bbe5f39 "" + "f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls" 1686597312 281957 5b2e4fa15b0f7eabb840ebf67df4c0f7 "" + "f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1686597566 30429 213676d4c7327a21d91ddaed900e7b81 "" + "f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd" 1686598894 961 15056f4a61917ceed3a44e4ac11fcc52 "" + "f:/texlive/2023/texmf-dist/web2c/texmf.cnf" 1686595165 40745 87bb86a62d462f93a1efc6b0c65c872e "" + "f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1686600724 4662804 b208f5a7147b9c917dce03cb7ea949d8 "" + "f:/texlive/2023/texmf-var/web2c/pdftex/pdflatex.fmt" 1686600959 7883431 edc0631e5cfd0c90eb1cca2bb9c4ecf7 "" + "f:/texlive/2023/texmf.cnf" 1686600677 713 e69b156964470283e0530f5060668171 "" + "main.aux" 1690172594 1613 81195b337ca108147868943282b88349 "pdflatex" + "main.tex" 1690172588 2249 14014709aa12192f398d5ef2723c5576 "" + (generated) + "main.aux" + "main.log" + "main.pdf" + (rewritten before read) diff --git a/src/main.fls b/src/main.fls new file mode 100644 index 0000000..460e464 --- /dev/null +++ b/src/main.fls @@ -0,0 +1,100 @@ +PWD f:/HsiangNianian/psi/src +INPUT f:/texlive/2023/texmf.cnf +INPUT f:/texlive/2023/texmf-dist/web2c/texmf.cnf +INPUT f:/texlive/2023/texmf-var/web2c/pdftex/pdflatex.fmt +INPUT f:/HsiangNianian/psi/src/main.tex +OUTPUT main.log +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd +INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd +INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd +INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd +INPUT f:/texlive/2023/texmf-dist/fonts/map/fontname/texfonts.map +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +INPUT ./main.aux +INPUT main.aux +INPUT main.aux +OUTPUT main.aux +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmrc7t.tfm +OUTPUT main.pdf +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map +INPUT f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmbi7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm +INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmrc7t.vf +INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm +INPUT main.aux +INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmb8a.pfb +INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb +INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmr8a.pfb +INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/src/main.log b/src/main.log new file mode 100644 index 0000000..77f8759 --- /dev/null +++ b/src/main.log @@ -0,0 +1,158 @@ +This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.6.13) 24 JUL 2023 12:23 +entering extended mode + restricted \write18 enabled. + file:line:error style messages enabled. + %&-line parsing enabled. +**f:/HsiangNianian/psi/src/main.tex +(f:/HsiangNianian/psi/src/main.tex +LaTeX2e <2022-11-01> patch level 1 +L3 programming layer <2023-02-22> (f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls +Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell +-- See the "IEEEtran_HOWTO" manual for usage information. +-- http://www.michaelshell.org/tex/ieeetran/ +\@IEEEtrantmpdimenA=\dimen140 +\@IEEEtrantmpdimenB=\dimen141 +\@IEEEtrantmpdimenC=\dimen142 +\@IEEEtrantmpcountA=\count185 +\@IEEEtrantmpcountB=\count186 +\@IEEEtrantmpcountC=\count187 +\@IEEEtrantmptoksA=\toks16 +LaTeX Font Info: Trying to load font information for OT1+ptm on input line 503. +(f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd +File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. +) +-- Using 8.5in x 11in (letter) paper. +-- Using PDF output. +\@IEEEnormalsizeunitybaselineskip=\dimen143 +-- This is a 10 point document. +\CLASSINFOnormalsizebaselineskip=\dimen144 +\CLASSINFOnormalsizeunitybaselineskip=\dimen145 +\IEEEnormaljot=\dimen146 +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. +LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available +(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. +\IEEEquantizedlength=\dimen147 +\IEEEquantizedlengthdiff=\dimen148 +\IEEEquantizedtextheightdiff=\dimen149 +\IEEEilabelindentA=\dimen150 +\IEEEilabelindentB=\dimen151 +\IEEEilabelindent=\dimen152 +\IEEEelabelindent=\dimen153 +\IEEEdlabelindent=\dimen154 +\IEEElabelindent=\dimen155 +\IEEEiednormlabelsep=\dimen156 +\IEEEiedmathlabelsep=\dimen157 +\IEEEiedtopsep=\skip48 +\c@section=\count188 +\c@subsection=\count189 +\c@subsubsection=\count190 +\c@paragraph=\count191 +\c@IEEEsubequation=\count192 +\abovecaptionskip=\skip49 +\belowcaptionskip=\skip50 +\c@figure=\count193 +\c@table=\count194 +\@IEEEeqnnumcols=\count195 +\@IEEEeqncolcnt=\count196 +\@IEEEsubeqnnumrollback=\count197 +\@IEEEquantizeheightA=\dimen158 +\@IEEEquantizeheightB=\dimen159 +\@IEEEquantizeheightC=\dimen160 +\@IEEEquantizeprevdepth=\dimen161 +\@IEEEquantizemultiple=\count198 +\@IEEEquantizeboxA=\box51 +\@IEEEtmpitemindent=\dimen162 +\IEEEPARstartletwidth=\dimen163 +\c@IEEEbiography=\count199 +\@IEEEtranrubishbin=\box52 +) (f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def +File: l3backend-pdftex.def 2023-01-16 L3 backend support: PDF output (pdfTeX) +\l__color_backend_stack_int=\count266 +\l__pdf_internal_box=\box53 +) (./main.aux) +\openout1 = `main.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3. +LaTeX Font Info: ... okay on input line 3. + +-- Lines per column: 56 (exact). + +** Conference Paper ** +Before submitting the final camera ready copy, remember to: + + 1. Manually equalize the lengths of two columns on the last page + of your paper; + + 2. Ensure that any PostScript and/or PDF output post-processing + uses only Type 1 fonts and that every step in the generation + process uses the appropriate paper size. + +[1{f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc} + + +] (./main.aux) ) +Here is how much of TeX's memory you used: + 1259 strings out of 476025 + 25183 string characters out of 5794015 + 1858382 words of memory out of 5000000 + 21779 multiletter control sequences out of 15000+600000 + 541654 words of font info for 80 fonts, out of 8000000 for 9000 + 1141 hyphenation exceptions out of 8191 + 36i,8n,37p,288b,261s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on main.pdf (1 page, 52923 bytes). +PDF statistics: + 29 PDF objects out of 1000 (max. 8388607) + 17 compressed objects within 1 object stream + 0 named destinations out of 1000 (max. 500000) + 1 words of extra memory for PDF output out of 10000 (max. 10000000) + diff --git a/src/main.pdf b/src/main.pdf new file mode 100644 index 0000000..069af95 Binary files /dev/null and b/src/main.pdf differ diff --git a/src/main.synctex.gz b/src/main.synctex.gz new file mode 100644 index 0000000..c9ec95d Binary files /dev/null and b/src/main.synctex.gz differ diff --git a/src/main.tex b/src/main.tex new file mode 100644 index 0000000..4013b74 --- /dev/null +++ b/src/main.tex @@ -0,0 +1,65 @@ +\documentclass[conference]{IEEEtran} + +\begin{document} +\title{Psi CLI Language} +\author{\IEEEauthorblockN{HsiangNianian} +\IEEEauthorblockA{\textit{Department of Computer Science} \\ +\textit{University of RBQ U.}\\ +i@jyunko.cn}} +\maketitle + +\begin{abstract} + Psi is a new programming language designed with simplicity, flexibility, and performance in mind. It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. +\end{abstract} + +\section{Introduction} +This section introduces the Psi CLI language and its features. + +\section{Features} +This section describes the key features of the Psi CLI language. + +\subsection{Lexer Module} +The lexer module is responsible for converting source code into a sequence of tokens. + +\subsection{Parser Module} +The parser module converts the token sequence into an abstract syntax tree (AST). + +\subsection{Built-in Types Module} +The built-in types module defines the built-in types of the Psi language, such as lists and dictionaries. + +\subsection{Error Handling Module} +The error handling module provides mechanisms for capturing and handling errors at runtime. + +\subsection{Execution Environment Module} +The execution environment module defines the execution environment of the Psi language. + +\subsection{Interpreter Module} +The interpreter module executes operations based on the AST within the execution environment. + +\subsection{Mathematics Foundation Module} +The mathematics foundation module provides basic mathematical functions and constants. + +\subsection{Documentation Module} +The documentation module provides API interface descriptions and usage examples. + +\section{Getting Started} +This section explains how to get started with the Psi CLI language. + +\section{Keywords} +This section lists the keywords used in the Psi CLI language. + +\section{Contribution} +This section outlines how to contribute to the Psi project. + +\section{License} +This section provides information about the license of the Psi CLI language. + +\section*{Acknowledgment} +The authors would like to thank... + +\section*{References} +[1] Reference 1 + +[2] Reference 2 + +\end{document} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 747de8e728f3d40a227246804dcfceadfa202317 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Mon, 24 Jul 2023 12:28:56 +0800 Subject: 😎clear unused files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 11 +++- src/main.aux | 16 ------ src/main.fdb_latexmk | 37 ------------ src/main.fls | 100 -------------------------------- src/main.log | 158 --------------------------------------------------- src/main.synctex.gz | Bin 6776 -> 0 bytes 6 files changed, 10 insertions(+), 312 deletions(-) delete mode 100644 src/main.aux delete mode 100644 src/main.fdb_latexmk delete mode 100644 src/main.fls delete mode 100644 src/main.log delete mode 100644 src/main.synctex.gz diff --git a/.gitignore b/.gitignore index 690fd63..a3a18ac 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,11 @@ readme.md -__pycache__ \ No newline at end of file + +# python +__pycache__ + +# LaTeX +src/main.aux +src/main.fdb_latexmk +src/main.fls +src/main.log +src/main.synctex.gz \ No newline at end of file diff --git a/src/main.aux b/src/main.aux deleted file mode 100644 index 8778f01..0000000 --- a/src/main.aux +++ /dev/null @@ -1,16 +0,0 @@ -\relax -\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {II}Features}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-A}}Lexer Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Parser Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Built-in Types Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-D}}Error Handling Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-E}}Execution Environment Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-F}}Interpreter Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-G}}Mathematics Foundation Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-H}}Documentation Module}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {III}Getting Started}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {IV}Keywords}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {V}Contribution}{1}{}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {VI}License}{1}{}\protected@file@percent } -\gdef \@abspage@last{1} diff --git a/src/main.fdb_latexmk b/src/main.fdb_latexmk deleted file mode 100644 index e60c234..0000000 --- a/src/main.fdb_latexmk +++ /dev/null @@ -1,37 +0,0 @@ -# Fdb version 4 -["pdflatex"] 1690172592 "f:/HsiangNianian/psi/src/main.tex" "main.pdf" "main" 1690172595 0 - "f:/HsiangNianian/psi/src/main.tex" 1690172588 2249 14014709aa12192f398d5ef2723c5576 "" - "f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc" 1686596455 4850 80dc9bab7f31fb78a000ccfed0e27cab "" - "f:/texlive/2023/texmf-dist/fonts/map/fontname/texfonts.map" 1686596844 3524 cb3e574dea2d1052e39280babc910dc8 "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm" 1686599988 2172 fd0c924230362ff848a33632ed45dc23 "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm" 1686599988 4524 6bce29db5bc272ba5f332261583fee9c "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm" 1686599988 2228 e564491c42a4540b5ebb710a75ff306c "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm" 1686599988 4480 10409ed8bab5aea9ec9a78028b763919 "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm" 1686599988 2124 2601a75482e9426d33db523edf23570a "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm" 1686599988 4408 25b74d011a4c66b7f212c0cc3c90061b "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmrc7t.tfm" 1686599988 2680 312a2d12b1f1df8ee0212e7ba1962402 "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm" 1686599988 2288 f478fc8fed18759effb59f3dad7f3084 "" - "f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm" 1686599988 4640 532ca3305aad10cc01d769f3f91f1029 "" - "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmb8a.pfb" 1686599988 44729 fea0975e20ec51c992338362f05f1146 "" - "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb" 1686599988 44656 0cbca70e0534538582128f6b54593cca "" - "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmr8a.pfb" 1686599988 46026 687528a208fbfc1f00832bb96cccebbb "" - "f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmri8a.pfb" 1686599988 45458 504e2b06fa82109d168c7a0afb09e145 "" - "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf" 1686599988 1372 788387fea833ef5963f4c5bffe33eb89 "" - "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmbi7t.vf" 1686599988 1384 6ac0f8b839230f5d9389287365b243c0 "" - "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf" 1686599988 1380 0ea3a3370054be6da6acd929ec569f06 "" - "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmrc7t.vf" 1686599988 1948 7330aeef3af211edff3b35fb2c12a0fd "" - "f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf" 1686599988 1384 a9d8adaf491ce34e5fba99dc7bbe5f39 "" - "f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls" 1686597312 281957 5b2e4fa15b0f7eabb840ebf67df4c0f7 "" - "f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1686597566 30429 213676d4c7327a21d91ddaed900e7b81 "" - "f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd" 1686598894 961 15056f4a61917ceed3a44e4ac11fcc52 "" - "f:/texlive/2023/texmf-dist/web2c/texmf.cnf" 1686595165 40745 87bb86a62d462f93a1efc6b0c65c872e "" - "f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1686600724 4662804 b208f5a7147b9c917dce03cb7ea949d8 "" - "f:/texlive/2023/texmf-var/web2c/pdftex/pdflatex.fmt" 1686600959 7883431 edc0631e5cfd0c90eb1cca2bb9c4ecf7 "" - "f:/texlive/2023/texmf.cnf" 1686600677 713 e69b156964470283e0530f5060668171 "" - "main.aux" 1690172594 1613 81195b337ca108147868943282b88349 "pdflatex" - "main.tex" 1690172588 2249 14014709aa12192f398d5ef2723c5576 "" - (generated) - "main.aux" - "main.log" - "main.pdf" - (rewritten before read) diff --git a/src/main.fls b/src/main.fls deleted file mode 100644 index 460e464..0000000 --- a/src/main.fls +++ /dev/null @@ -1,100 +0,0 @@ -PWD f:/HsiangNianian/psi/src -INPUT f:/texlive/2023/texmf.cnf -INPUT f:/texlive/2023/texmf-dist/web2c/texmf.cnf -INPUT f:/texlive/2023/texmf-var/web2c/pdftex/pdflatex.fmt -INPUT f:/HsiangNianian/psi/src/main.tex -OUTPUT main.log -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd -INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd -INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd -INPUT f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd -INPUT f:/texlive/2023/texmf-dist/fonts/map/fontname/texfonts.map -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri7t.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi7t.tfm -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -INPUT ./main.aux -INPUT main.aux -INPUT main.aux -OUTPUT main.aux -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmrc7t.tfm -OUTPUT main.pdf -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm -INPUT f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map -INPUT f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmri7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmri8r.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmr7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmbi7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmbi8r.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmb7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmb8r.tfm -INPUT f:/texlive/2023/texmf-dist/fonts/vf/adobe/times/ptmrc7t.vf -INPUT f:/texlive/2023/texmf-dist/fonts/tfm/adobe/times/ptmr8r.tfm -INPUT main.aux -INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmb8a.pfb -INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb -INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmr8a.pfb -INPUT f:/texlive/2023/texmf-dist/fonts/type1/urw/times/utmri8a.pfb diff --git a/src/main.log b/src/main.log deleted file mode 100644 index 77f8759..0000000 --- a/src/main.log +++ /dev/null @@ -1,158 +0,0 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.6.13) 24 JUL 2023 12:23 -entering extended mode - restricted \write18 enabled. - file:line:error style messages enabled. - %&-line parsing enabled. -**f:/HsiangNianian/psi/src/main.tex -(f:/HsiangNianian/psi/src/main.tex -LaTeX2e <2022-11-01> patch level 1 -L3 programming layer <2023-02-22> (f:/texlive/2023/texmf-dist/tex/latex/ieeetran/IEEEtran.cls -Document Class: IEEEtran 2015/08/26 V1.8b by Michael Shell --- See the "IEEEtran_HOWTO" manual for usage information. --- http://www.michaelshell.org/tex/ieeetran/ -\@IEEEtrantmpdimenA=\dimen140 -\@IEEEtrantmpdimenB=\dimen141 -\@IEEEtrantmpdimenC=\dimen142 -\@IEEEtrantmpcountA=\count185 -\@IEEEtrantmpcountB=\count186 -\@IEEEtrantmpcountC=\count187 -\@IEEEtrantmptoksA=\toks16 -LaTeX Font Info: Trying to load font information for OT1+ptm on input line 503. -(f:/texlive/2023/texmf-dist/tex/latex/psnfss/ot1ptm.fd -File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. -) --- Using 8.5in x 11in (letter) paper. --- Using PDF output. -\@IEEEnormalsizeunitybaselineskip=\dimen143 --- This is a 10 point document. -\CLASSINFOnormalsizebaselineskip=\dimen144 -\CLASSINFOnormalsizeunitybaselineskip=\dimen145 -\IEEEnormaljot=\dimen146 -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <5> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <5> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <7> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <8> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <9> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <10> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <11> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <11> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <12> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <17> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <17> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <20> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <20> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <24> not available -(Font) Font shape `OT1/ptm/b/n' tried instead on input line 1090. -LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available -(Font) Font shape `OT1/ptm/b/it' tried instead on input line 1090. -\IEEEquantizedlength=\dimen147 -\IEEEquantizedlengthdiff=\dimen148 -\IEEEquantizedtextheightdiff=\dimen149 -\IEEEilabelindentA=\dimen150 -\IEEEilabelindentB=\dimen151 -\IEEEilabelindent=\dimen152 -\IEEEelabelindent=\dimen153 -\IEEEdlabelindent=\dimen154 -\IEEElabelindent=\dimen155 -\IEEEiednormlabelsep=\dimen156 -\IEEEiedmathlabelsep=\dimen157 -\IEEEiedtopsep=\skip48 -\c@section=\count188 -\c@subsection=\count189 -\c@subsubsection=\count190 -\c@paragraph=\count191 -\c@IEEEsubequation=\count192 -\abovecaptionskip=\skip49 -\belowcaptionskip=\skip50 -\c@figure=\count193 -\c@table=\count194 -\@IEEEeqnnumcols=\count195 -\@IEEEeqncolcnt=\count196 -\@IEEEsubeqnnumrollback=\count197 -\@IEEEquantizeheightA=\dimen158 -\@IEEEquantizeheightB=\dimen159 -\@IEEEquantizeheightC=\dimen160 -\@IEEEquantizeprevdepth=\dimen161 -\@IEEEquantizemultiple=\count198 -\@IEEEquantizeboxA=\box51 -\@IEEEtmpitemindent=\dimen162 -\IEEEPARstartletwidth=\dimen163 -\c@IEEEbiography=\count199 -\@IEEEtranrubishbin=\box52 -) (f:/texlive/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def -File: l3backend-pdftex.def 2023-01-16 L3 backend support: PDF output (pdfTeX) -\l__color_backend_stack_int=\count266 -\l__pdf_internal_box=\box53 -) (./main.aux) -\openout1 = `main.aux'. - -LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. -LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 3. -LaTeX Font Info: ... okay on input line 3. - --- Lines per column: 56 (exact). - -** Conference Paper ** -Before submitting the final camera ready copy, remember to: - - 1. Manually equalize the lengths of two columns on the last page - of your paper; - - 2. Ensure that any PostScript and/or PDF output post-processing - uses only Type 1 fonts and that every step in the generation - process uses the appropriate paper size. - -[1{f:/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{f:/texlive/2023/texmf-dist/fonts/enc/dvips/base/8r.enc} - - -] (./main.aux) ) -Here is how much of TeX's memory you used: - 1259 strings out of 476025 - 25183 string characters out of 5794015 - 1858382 words of memory out of 5000000 - 21779 multiletter control sequences out of 15000+600000 - 541654 words of font info for 80 fonts, out of 8000000 for 9000 - 1141 hyphenation exceptions out of 8191 - 36i,8n,37p,288b,261s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on main.pdf (1 page, 52923 bytes). -PDF statistics: - 29 PDF objects out of 1000 (max. 8388607) - 17 compressed objects within 1 object stream - 0 named destinations out of 1000 (max. 500000) - 1 words of extra memory for PDF output out of 10000 (max. 10000000) - diff --git a/src/main.synctex.gz b/src/main.synctex.gz deleted file mode 100644 index c9ec95d..0000000 Binary files a/src/main.synctex.gz and /dev/null differ -- cgit v1.2.3-70-g09d2 From ccbe69c9e072c4bf8364e23a461d224e150a421f Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Mon, 24 Jul 2023 12:51:48 +0800 Subject: 😎beauty table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main.pdf | Bin 52923 -> 54209 bytes src/main.tex | 32 +++++++++++++++++++++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/main.pdf b/src/main.pdf index 069af95..4ec4dd7 100644 Binary files a/src/main.pdf and b/src/main.pdf differ diff --git a/src/main.tex b/src/main.tex index 4013b74..442d3d9 100644 --- a/src/main.tex +++ b/src/main.tex @@ -1,11 +1,12 @@ \documentclass[conference]{IEEEtran} +\usepackage{booktabs} \begin{document} \title{Psi CLI Language} \author{\IEEEauthorblockN{HsiangNianian} -\IEEEauthorblockA{\textit{Department of Computer Science} \\ -\textit{University of RBQ U.}\\ -i@jyunko.cn}} + \IEEEauthorblockA{\textit{Department of Computer Science} \\ + \textit{University of RBQ U.}\\ + i@jyunko.cn}} \maketitle \begin{abstract} @@ -20,6 +21,27 @@ This section describes the key features of the Psi CLI language. \subsection{Lexer Module} The lexer module is responsible for converting source code into a sequence of tokens. +It recognizes the basic elements of the language such as identifiers, keywords, operators, and literals. + +\begin{table}[htbp] + \caption{Code Tokens and Corresponding Meanings} + \label{table:code_tokens} + \centering + \begin{tabular}{@{} c|c @{}} + \toprule + \textbf{Token} & \textbf{Meaning} \\ + \midrule + list & TYPE \\ + colors & IDENTIFIER \\ + = & EQUALS \\ + red & IDENTIFIER \\ + , & COMMA \\ + blue & IDENTIFIER \\ + , & COMMA \\ + green & IDENTIFIER \\ + \bottomrule + \end{tabular} +\end{table} \subsection{Parser Module} The parser module converts the token sequence into an abstract syntax tree (AST). @@ -58,8 +80,8 @@ This section provides information about the license of the Psi CLI language. The authors would like to thank... \section*{References} -[1] Reference 1 + [1] Reference 1 -[2] Reference 2 + [2] Reference 2 \end{document} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From d304910159e6824dae201e4e4aeafa0ff7984292 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:37:11 +0800 Subject: add docs --- .github/workflows/pages.yml | 25 + .gitignore | 8 +- docs/docs/blog/index.md | 0 docs/docs/changelog/index.md | 0 docs/docs/index.md | 48 ++ docs/mkdocs.yml | 117 +++ psi/docs/_build/html/.buildinfo | 4 - psi/docs/_build/html/.doctrees/api/psi.doctree | Bin 7631 -> 0 bytes psi/docs/_build/html/.doctrees/environment.pickle | Bin 25346 -> 0 bytes psi/docs/_build/html/.doctrees/index.doctree | Bin 2446 -> 0 bytes psi/docs/_build/html/_sources/api/psi.rst.txt | 7 - psi/docs/_build/html/_sources/index.rst.txt | 5 - psi/docs/_build/html/_static/alabaster.css | 703 ---------------- psi/docs/_build/html/_static/basic.css | 903 --------------------- psi/docs/_build/html/_static/custom.css | 1 - psi/docs/_build/html/_static/doctools.js | 156 ---- .../_build/html/_static/documentation_options.js | 14 - psi/docs/_build/html/_static/file.png | Bin 286 -> 0 bytes psi/docs/_build/html/_static/language_data.js | 199 ----- psi/docs/_build/html/_static/minus.png | Bin 90 -> 0 bytes psi/docs/_build/html/_static/plus.png | Bin 90 -> 0 bytes psi/docs/_build/html/_static/pygments.css | 83 -- psi/docs/_build/html/_static/searchtools.js | 566 ------------- psi/docs/_build/html/_static/sphinx_highlight.js | 144 ---- psi/docs/_build/html/api/psi.html | 123 --- psi/docs/_build/html/genindex.html | 157 ---- psi/docs/_build/html/index.html | 98 --- psi/docs/_build/html/objects.inv | 6 - psi/docs/_build/html/py-modindex.html | 116 --- psi/docs/_build/html/search.html | 117 --- psi/docs/_build/html/searchindex.js | 1 - psi/docs/api/psi.rst | 7 - psi/docs/conf.py | 7 - psi/docs/index.rst | 5 - tests/if-else.py | 84 +- 35 files changed, 272 insertions(+), 3432 deletions(-) create mode 100644 .github/workflows/pages.yml create mode 100644 docs/docs/blog/index.md create mode 100644 docs/docs/changelog/index.md create mode 100644 docs/docs/index.md create mode 100644 docs/mkdocs.yml delete mode 100644 psi/docs/_build/html/.buildinfo delete mode 100644 psi/docs/_build/html/.doctrees/api/psi.doctree delete mode 100644 psi/docs/_build/html/.doctrees/environment.pickle delete mode 100644 psi/docs/_build/html/.doctrees/index.doctree delete mode 100644 psi/docs/_build/html/_sources/api/psi.rst.txt delete mode 100644 psi/docs/_build/html/_sources/index.rst.txt delete mode 100644 psi/docs/_build/html/_static/alabaster.css delete mode 100644 psi/docs/_build/html/_static/basic.css delete mode 100644 psi/docs/_build/html/_static/custom.css delete mode 100644 psi/docs/_build/html/_static/doctools.js delete mode 100644 psi/docs/_build/html/_static/documentation_options.js delete mode 100644 psi/docs/_build/html/_static/file.png delete mode 100644 psi/docs/_build/html/_static/language_data.js delete mode 100644 psi/docs/_build/html/_static/minus.png delete mode 100644 psi/docs/_build/html/_static/plus.png delete mode 100644 psi/docs/_build/html/_static/pygments.css delete mode 100644 psi/docs/_build/html/_static/searchtools.js delete mode 100644 psi/docs/_build/html/_static/sphinx_highlight.js delete mode 100644 psi/docs/_build/html/api/psi.html delete mode 100644 psi/docs/_build/html/genindex.html delete mode 100644 psi/docs/_build/html/index.html delete mode 100644 psi/docs/_build/html/objects.inv delete mode 100644 psi/docs/_build/html/py-modindex.html delete mode 100644 psi/docs/_build/html/search.html delete mode 100644 psi/docs/_build/html/searchindex.js delete mode 100644 psi/docs/api/psi.rst delete mode 100644 psi/docs/conf.py delete mode 100644 psi/docs/index.rst diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml new file mode 100644 index 0000000..67b129b --- /dev/null +++ b/.github/workflows/pages.yml @@ -0,0 +1,25 @@ +name: ci +on: + push: + branches: + - master + - main +permissions: + contents: write +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 + with: + python-version: 3.x + - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV + - uses: actions/cache@v3 + with: + key: mkdocs-material-${{ env.cache_id }} + path: .cache + restore-keys: | + mkdocs-material- + - run: pip install mkdocs-material + - run: mkdocs gh-deploy --force diff --git a/.gitignore b/.gitignore index a3a18ac..1f70b39 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,10 @@ src/main.aux src/main.fdb_latexmk src/main.fls src/main.log -src/main.synctex.gz \ No newline at end of file +src/main.synctex.gz + +# LangTrans +LangTrans-main/ + +# mkdocs +docs/site/ \ No newline at end of file diff --git a/docs/docs/blog/index.md b/docs/docs/blog/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs/changelog/index.md b/docs/docs/changelog/index.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs/index.md b/docs/docs/index.md new file mode 100644 index 0000000..e3ade6a --- /dev/null +++ b/docs/docs/index.md @@ -0,0 +1,48 @@ +Psi CLI 语言 +======================== + +Psi is a new programming language designed with simplicity, flexibility, and performance in mind. It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. + + +Features +-------- + +- `Lexer Module`_: The lexer module is responsible for converting the source code into a sequence of tokens. It recognizes the basic elements of the language such as identifiers, keywords, operators, and literals. ``['OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'SEPARATOR', 'CONTROL', 'IDENTIFIER', 'OPERATOR', 'INTEGER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'EOF']`` + +- `Parser Module`_: The parser module takes the sequence of tokens generated by the lexer module and transforms it into an Abstract Syntax Tree (AST). The AST is a tree-like data structure that represents the source code in a way that is closer to the syntactic structure of the programming language. + +- `Built-in Types Module`_: This module defines the built-in types of the Psi language, such as lists and dictionaries. It provides functions for creating and manipulating instances of these types. + +- `Error Handling Module`_: This module provides a mechanism for catching and handling errors during runtime. It defines a set of exception classes and functions for throwing and catching these exceptions. + +- `Execution Environment Module`_: This module defines the execution environment of the Psi language, including the scope and lifecycle of variables. It provides functions for defining and looking up variables in the execution environment. + +- `Interpreter Module`_: The main task of this module is to traverse the AST and perform the corresponding operations in the execution environment. + +- `Mathematics Foundation Module`_: This module provides basic mathematical functions and constants, such as addition, subtraction, multiplication, and division. + +- `Documentation Module`_: This module uses reStructuredText and Sphinx to build the documentation, providing API interface descriptions and usage examples. + + +Getting Started +--------------- + +To get started with Psi, you can clone the repository and follow the instructions in the README file. The repository includes a comprehensive set of examples that demonstrate the various features of the language. + + +Contributing +------------ + +Contributions to the Psi project are welcome. If you have a feature request, bug report, or proposal for improvement, please open an issue on the project's GitHub page. If you wish to contribute code, please fork the repository and submit a pull request. + +How to build docs + + git clone https://github.com/HydroRoll-Team/psi.git + cd psi/psi/docs + sphinx-build -b html . _build/html + + +License +------- + +Psi is open-source software, licensed under the MIT license. This means you are free to use, modify, and distribute it under the terms of this license. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml new file mode 100644 index 0000000..1273d5c --- /dev/null +++ b/docs/mkdocs.yml @@ -0,0 +1,117 @@ +site_name: Psi Docs (Draft) +repo_url: https://github.com/HydroRoll-Team/psi +repo_name: HydroRoll-Team/psi +edit_uri: edit/main/docs/ + + +theme: + name: material + language: en + icon: + logo: material/library-outline + repo: fontawesome/brands/git-alt + custom_dir: overrides + features: + - content.action.edit + - content.action.view + - navigation.footer + - navigation.tabs + # - navigation.tabs.sticky + - navigation.sections + - navigation.expand + - navigation.path + - navigation.indexes + - toc.follow + - navigation.top + - search.highlight + - search.suggest + - search.share + - header.autohide + - navigation.footer + palette: + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to system preference + +extra: + version: + provider: mike + default: stable + homepage: https://psi.retrofor.space + alternate: + # - name: English + # link: /en/ + # lang: en + - name: 中文 + link: / + lang: zh + consent: + title: Cookie consent + description: >- + We use cookies to recognize your repeated visits and preferences, as well + as to measure the effectiveness of our documentation and whether users + find what they're searching for. With your consent, you're helping us to + make our documentation better. + actions: + - accept + - manage + cookies: + analytics: + name: Google Analytics + checked: true + github: + name: GitHub + checked: true + analytics: + feedback: + title: Was this page helpful? + ratings: + - icon: material/emoticon-happy-outline + name: This page was helpful + data: 1 + note: >- + Thanks for your feedback! + - icon: material/emoticon-sad-outline + name: This page could be improved + data: 0 + note: >- + Thanks for your feedback! Help us improve this page by + using our feedback form. + social: + - icon: fontawesome/brands/github + link: https://github.com/HydroRoll-Team + +extra_css: + - stylesheets/extra.css + +extra_javascript: + - javascripts/extra.js + +copyright: > + Copyright © 2013 - PRESENT. HydroRoll-Team – + Change cookie settings + +plugins: + - blog + - search + - git-authors + # - git-revision-date-localized + # - git-committers: + # repository: HydroRoll-Team/psi + # branch: main \ No newline at end of file diff --git a/psi/docs/_build/html/.buildinfo b/psi/docs/_build/html/.buildinfo deleted file mode 100644 index df7bb57..0000000 --- a/psi/docs/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 4c6673ae9407be59cbf8e6910887dc71 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/psi/docs/_build/html/.doctrees/api/psi.doctree b/psi/docs/_build/html/.doctrees/api/psi.doctree deleted file mode 100644 index eef2304..0000000 Binary files a/psi/docs/_build/html/.doctrees/api/psi.doctree and /dev/null differ diff --git a/psi/docs/_build/html/.doctrees/environment.pickle b/psi/docs/_build/html/.doctrees/environment.pickle deleted file mode 100644 index 33a77e0..0000000 Binary files a/psi/docs/_build/html/.doctrees/environment.pickle and /dev/null differ diff --git a/psi/docs/_build/html/.doctrees/index.doctree b/psi/docs/_build/html/.doctrees/index.doctree deleted file mode 100644 index e0ac162..0000000 Binary files a/psi/docs/_build/html/.doctrees/index.doctree and /dev/null differ diff --git a/psi/docs/_build/html/_sources/api/psi.rst.txt b/psi/docs/_build/html/_sources/api/psi.rst.txt deleted file mode 100644 index 8177e9b..0000000 --- a/psi/docs/_build/html/_sources/api/psi.rst.txt +++ /dev/null @@ -1,7 +0,0 @@ -Psi API Reference -================= - -.. automodule:: psi - :members: - :undoc-members: - :show-inheritance: diff --git a/psi/docs/_build/html/_sources/index.rst.txt b/psi/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index cb919b0..0000000 --- a/psi/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,5 +0,0 @@ -.. toctree:: - :maxdepth: 2 - :caption: Modules - - psi/ \ No newline at end of file diff --git a/psi/docs/_build/html/_static/alabaster.css b/psi/docs/_build/html/_static/alabaster.css deleted file mode 100644 index 517d0b2..0000000 --- a/psi/docs/_build/html/_static/alabaster.css +++ /dev/null @@ -1,703 +0,0 @@ -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: Georgia, serif; - font-size: 17px; - background-color: #fff; - color: #000; - margin: 0; - padding: 0; -} - - -div.document { - width: 940px; - margin: 30px auto 0 auto; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 220px; -} - -div.sphinxsidebar { - width: 220px; - font-size: 14px; - line-height: 1.5; -} - -hr { - border: 1px solid #B1B4B6; -} - -div.body { - background-color: #fff; - color: #3E4349; - padding: 0 30px 0 30px; -} - -div.body > .section { - text-align: left; -} - -div.footer { - width: 940px; - margin: 20px auto 30px auto; - font-size: 14px; - color: #888; - text-align: right; -} - -div.footer a { - color: #888; -} - -p.caption { - font-family: inherit; - font-size: inherit; -} - - -div.relations { - display: none; -} - - -div.sphinxsidebar a { - color: #444; - text-decoration: none; - border-bottom: 1px dotted #999; -} - -div.sphinxsidebar a:hover { - border-bottom: 1px solid #999; -} - -div.sphinxsidebarwrapper { - padding: 18px 10px; -} - -div.sphinxsidebarwrapper p.logo { - padding: 0; - margin: -10px 0 0 0px; - text-align: center; -} - -div.sphinxsidebarwrapper h1.logo { - margin-top: -10px; - text-align: center; - margin-bottom: 5px; - text-align: left; -} - -div.sphinxsidebarwrapper h1.logo-name { - margin-top: 0px; -} - -div.sphinxsidebarwrapper p.blurb { - margin-top: 0; - font-style: normal; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: Georgia, serif; - color: #444; - font-size: 24px; - font-weight: normal; - margin: 0 0 5px 0; - padding: 0; -} - -div.sphinxsidebar h4 { - font-size: 20px; -} - -div.sphinxsidebar h3 a { - color: #444; -} - -div.sphinxsidebar p.logo a, -div.sphinxsidebar h3 a, -div.sphinxsidebar p.logo a:hover, -div.sphinxsidebar h3 a:hover { - border: none; -} - -div.sphinxsidebar p { - color: #555; - margin: 10px 0; -} - -div.sphinxsidebar ul { - margin: 10px 0; - padding: 0; - color: #000; -} - -div.sphinxsidebar ul li.toctree-l1 > a { - font-size: 120%; -} - -div.sphinxsidebar ul li.toctree-l2 > a { - font-size: 110%; -} - -div.sphinxsidebar input { - border: 1px solid #CCC; - font-family: Georgia, serif; - font-size: 1em; -} - -div.sphinxsidebar hr { - border: none; - height: 1px; - color: #AAA; - background: #AAA; - - text-align: left; - margin-left: 0; - width: 50%; -} - -div.sphinxsidebar .badge { - border-bottom: none; -} - -div.sphinxsidebar .badge:hover { - border-bottom: none; -} - -/* To address an issue with donation coming after search */ -div.sphinxsidebar h3.donation { - margin-top: 10px; -} - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #004B6B; - text-decoration: underline; -} - -a:hover { - color: #6D4100; - text-decoration: underline; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: Georgia, serif; - font-weight: normal; - margin: 30px 0px 10px 0px; - padding: 0; -} - -div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } -div.body h2 { font-size: 180%; } -div.body h3 { font-size: 150%; } -div.body h4 { font-size: 130%; } -div.body h5 { font-size: 100%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #DDD; - padding: 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - color: #444; - background: #EAEAEA; -} - -div.body p, div.body dd, div.body li { - line-height: 1.4em; -} - -div.admonition { - margin: 20px 0px; - padding: 10px 30px; - background-color: #EEE; - border: 1px solid #CCC; -} - -div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fafafa; -} - -div.admonition p.admonition-title { - font-family: Georgia, serif; - font-weight: normal; - font-size: 24px; - margin: 0 0 10px 0; - padding: 0; - line-height: 1; -} - -div.admonition p.last { - margin-bottom: 0; -} - -div.highlight { - background-color: #fff; -} - -dt:target, .highlight { - background: #FAF3E8; -} - -div.warning { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.danger { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.error { - background-color: #FCC; - border: 1px solid #FAA; - -moz-box-shadow: 2px 2px 4px #D52C2C; - -webkit-box-shadow: 2px 2px 4px #D52C2C; - box-shadow: 2px 2px 4px #D52C2C; -} - -div.caution { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.attention { - background-color: #FCC; - border: 1px solid #FAA; -} - -div.important { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.note { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.tip { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.hint { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.seealso { - background-color: #EEE; - border: 1px solid #CCC; -} - -div.topic { - background-color: #EEE; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre, tt, code { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; - font-size: 0.9em; -} - -.hll { - background-color: #FFC; - margin: 0 -12px; - padding: 0 12px; - display: block; -} - -img.screenshot { -} - -tt.descname, tt.descclassname, code.descname, code.descclassname { - font-size: 0.95em; -} - -tt.descname, code.descname { - padding-right: 0.08em; -} - -img.screenshot { - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils { - border: 1px solid #888; - -moz-box-shadow: 2px 2px 4px #EEE; - -webkit-box-shadow: 2px 2px 4px #EEE; - box-shadow: 2px 2px 4px #EEE; -} - -table.docutils td, table.docutils th { - border: 1px solid #888; - padding: 0.25em 0.7em; -} - -table.field-list, table.footnote { - border: none; - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - -table.footnote { - margin: 15px 0; - width: 100%; - border: 1px solid #EEE; - background: #FDFDFD; - font-size: 0.9em; -} - -table.footnote + table.footnote { - margin-top: -15px; - border-top: none; -} - -table.field-list th { - padding: 0 0.8em 0 0; -} - -table.field-list td { - padding: 0; -} - -table.field-list p { - margin-bottom: 0.8em; -} - -/* Cloned from - * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 - */ -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -table.footnote td.label { - width: .1px; - padding: 0.3em 0 0.3em 0.5em; -} - -table.footnote td { - padding: 0.3em 0.5em; -} - -dl { - margin-left: 0; - margin-right: 0; - margin-top: 0; - padding: 0; -} - -dl dd { - margin-left: 30px; -} - -blockquote { - margin: 0 0 0 30px; - padding: 0; -} - -ul, ol { - /* Matches the 30px from the narrow-screen "li > ul" selector below */ - margin: 10px 0 10px 30px; - padding: 0; -} - -pre { - background: #EEE; - padding: 7px 30px; - margin: 15px 0px; - line-height: 1.3em; -} - -div.viewcode-block:target { - background: #ffd; -} - -dl pre, blockquote pre, li pre { - margin-left: 0; - padding-left: 30px; -} - -tt, code { - background-color: #ecf0f3; - color: #222; - /* padding: 1px 2px; */ -} - -tt.xref, code.xref, a tt { - background-color: #FBFBFB; - border-bottom: 1px solid #fff; -} - -a.reference { - text-decoration: none; - border-bottom: 1px dotted #004B6B; -} - -/* Don't put an underline on images */ -a.image-reference, a.image-reference:hover { - border-bottom: none; -} - -a.reference:hover { - border-bottom: 1px solid #6D4100; -} - -a.footnote-reference { - text-decoration: none; - font-size: 0.7em; - vertical-align: top; - border-bottom: 1px dotted #004B6B; -} - -a.footnote-reference:hover { - border-bottom: 1px solid #6D4100; -} - -a:hover tt, a:hover code { - background: #EEE; -} - - -@media screen and (max-width: 870px) { - - div.sphinxsidebar { - display: none; - } - - div.document { - width: 100%; - - } - - div.documentwrapper { - margin-left: 0; - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - } - - div.bodywrapper { - margin-top: 0; - margin-right: 0; - margin-bottom: 0; - margin-left: 0; - } - - ul { - margin-left: 0; - } - - li > ul { - /* Matches the 30px from the "ul, ol" selector above */ - margin-left: 30px; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .bodywrapper { - margin: 0; - } - - .footer { - width: auto; - } - - .github { - display: none; - } - - - -} - - - -@media screen and (max-width: 875px) { - - body { - margin: 0; - padding: 20px 30px; - } - - div.documentwrapper { - float: none; - background: #fff; - } - - div.sphinxsidebar { - display: block; - float: none; - width: 102.5%; - margin: 50px -30px -20px -30px; - padding: 10px 20px; - background: #333; - color: #FFF; - } - - div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, - div.sphinxsidebar h3 a { - color: #fff; - } - - div.sphinxsidebar a { - color: #AAA; - } - - div.sphinxsidebar p.logo { - display: none; - } - - div.document { - width: 100%; - margin: 0; - } - - div.footer { - display: none; - } - - div.bodywrapper { - margin: 0; - } - - div.body { - min-height: 0; - padding: 0; - } - - .rtd_doc_footer { - display: none; - } - - .document { - width: auto; - } - - .footer { - width: auto; - } - - .footer { - width: auto; - } - - .github { - display: none; - } -} - - -/* misc. */ - -.revsys-inline { - display: none!important; -} - -/* Make nested-list/multi-paragraph items look better in Releases changelog - * pages. Without this, docutils' magical list fuckery causes inconsistent - * formatting between different release sub-lists. - */ -div#changelog > div.section > ul > li > p:only-child { - margin-bottom: 0; -} - -/* Hide fugly table cell borders in ..bibliography:: directive output */ -table.docutils.citation, table.docutils.citation td, table.docutils.citation th { - border: none; - /* Below needed in some edge cases; if not applied, bottom shadows appear */ - -moz-box-shadow: none; - -webkit-box-shadow: none; - box-shadow: none; -} - - -/* relbar */ - -.related { - line-height: 30px; - width: 100%; - font-size: 0.9rem; -} - -.related.top { - border-bottom: 1px solid #EEE; - margin-bottom: 20px; -} - -.related.bottom { - border-top: 1px solid #EEE; -} - -.related ul { - padding: 0; - margin: 0; - list-style: none; -} - -.related li { - display: inline; -} - -nav#rellinks { - float: right; -} - -nav#rellinks li+li:before { - content: "|"; -} - -nav#breadcrumbs li+li:before { - content: "\00BB"; -} - -/* Hide certain items when printing */ -@media print { - div.related { - display: none; - } -} \ No newline at end of file diff --git a/psi/docs/_build/html/_static/basic.css b/psi/docs/_build/html/_static/basic.css deleted file mode 100644 index 7577acb..0000000 --- a/psi/docs/_build/html/_static/basic.css +++ /dev/null @@ -1,903 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -div.section::after { - display: block; - content: ''; - clear: left; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li p.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 360px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, figure.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, figure.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, figure.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, figure.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar, -aside.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px; - background-color: #ffe; - width: 40%; - float: right; - clear: right; - overflow-x: auto; -} - -p.sidebar-title { - font-weight: bold; -} - -nav.contents, -aside.topic, -div.admonition, div.topic, blockquote { - clear: left; -} - -/* -- topics ---------------------------------------------------------------- */ - -nav.contents, -aside.topic, -div.topic { - border: 1px solid #ccc; - padding: 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- content of sidebars/topics/admonitions -------------------------------- */ - -div.sidebar > :last-child, -aside.sidebar > :last-child, -nav.contents > :last-child, -aside.topic > :last-child, -div.topic > :last-child, -div.admonition > :last-child { - margin-bottom: 0; -} - -div.sidebar::after, -aside.sidebar::after, -nav.contents::after, -aside.topic::after, -div.topic::after, -div.admonition::after, -blockquote::after { - display: block; - content: ''; - clear: both; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - margin-top: 10px; - margin-bottom: 10px; - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > :first-child, -td > :first-child { - margin-top: 0px; -} - -th > :last-child, -td > :last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure, figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption, figcaption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number, -figcaption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text, -figcaption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist { - margin: 1em 0; -} - -table.hlist td { - vertical-align: top; -} - -/* -- object description styles --------------------------------------------- */ - -.sig { - font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; -} - -.sig-name, code.descname { - background-color: transparent; - font-weight: bold; -} - -.sig-name { - font-size: 1.1em; -} - -code.descname { - font-size: 1.2em; -} - -.sig-prename, code.descclassname { - background-color: transparent; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.sig-param.n { - font-style: italic; -} - -/* C++ specific styling */ - -.sig-inline.c-texpr, -.sig-inline.cpp-texpr { - font-family: unset; -} - -.sig.c .k, .sig.c .kt, -.sig.cpp .k, .sig.cpp .kt { - color: #0033B3; -} - -.sig.c .m, -.sig.cpp .m { - color: #1750EB; -} - -.sig.c .s, .sig.c .sc, -.sig.cpp .s, .sig.cpp .sc { - color: #067D17; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -:not(li) > ol > li:first-child > :first-child, -:not(li) > ul > li:first-child > :first-child { - margin-top: 0px; -} - -:not(li) > ol > li:last-child > :last-child, -:not(li) > ul > li:last-child > :last-child { - margin-bottom: 0px; -} - -ol.simple ol p, -ol.simple ul p, -ul.simple ol p, -ul.simple ul p { - margin-top: 0; -} - -ol.simple > li:not(:first-child) > p, -ul.simple > li:not(:first-child) > p { - margin-top: 0; -} - -ol.simple p, -ul.simple p { - margin-bottom: 0; -} - -aside.footnote > span, -div.citation > span { - float: left; -} -aside.footnote > span:last-of-type, -div.citation > span:last-of-type { - padding-right: 0.5em; -} -aside.footnote > p { - margin-left: 2em; -} -div.citation > p { - margin-left: 4em; -} -aside.footnote > p:last-of-type, -div.citation > p:last-of-type { - margin-bottom: 0em; -} -aside.footnote > p:last-of-type:after, -div.citation > p:last-of-type:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > :first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dl > dd:last-child, -dl > dd:last-child > :last-child { - margin-bottom: 0; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0 0.5em; - content: ":"; - display: inline-block; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -pre, div[class*="highlight-"] { - clear: both; -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; - white-space: nowrap; -} - -div[class*="highlight-"] { - margin: 1em 0; -} - -td.linenos pre { - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - display: block; -} - -table.highlighttable tbody { - display: block; -} - -table.highlighttable tr { - display: flex; -} - -table.highlighttable td { - margin: 0; - padding: 0; -} - -table.highlighttable td.linenos { - padding-right: 0.5em; -} - -table.highlighttable td.code { - flex: 1; - overflow: hidden; -} - -.highlight .hll { - display: block; -} - -div.highlight pre, -table.highlighttable pre { - margin: 0; -} - -div.code-block-caption + div { - margin-top: 0; -} - -div.code-block-caption { - margin-top: 1em; - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -table.highlighttable td.linenos, -span.linenos, -div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; - -webkit-user-select: text; /* Safari fallback only */ - -webkit-user-select: none; /* Chrome/Safari */ - -moz-user-select: none; /* Firefox */ - -ms-user-select: none; /* IE10+ */ -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - margin: 1em 0; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: absolute; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/psi/docs/_build/html/_static/custom.css b/psi/docs/_build/html/_static/custom.css deleted file mode 100644 index 2a924f1..0000000 --- a/psi/docs/_build/html/_static/custom.css +++ /dev/null @@ -1 +0,0 @@ -/* This file intentionally left blank. */ diff --git a/psi/docs/_build/html/_static/doctools.js b/psi/docs/_build/html/_static/doctools.js deleted file mode 100644 index d06a71d..0000000 --- a/psi/docs/_build/html/_static/doctools.js +++ /dev/null @@ -1,156 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Base JavaScript utilities for all Sphinx HTML documentation. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ - "TEXTAREA", - "INPUT", - "SELECT", - "BUTTON", -]); - -const _ready = (callback) => { - if (document.readyState !== "loading") { - callback(); - } else { - document.addEventListener("DOMContentLoaded", callback); - } -}; - -/** - * Small JavaScript module for the documentation. - */ -const Documentation = { - init: () => { - Documentation.initDomainIndexTable(); - Documentation.initOnKeyListeners(); - }, - - /** - * i18n support - */ - TRANSLATIONS: {}, - PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), - LOCALE: "unknown", - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext: (string) => { - const translated = Documentation.TRANSLATIONS[string]; - switch (typeof translated) { - case "undefined": - return string; // no translation - case "string": - return translated; // translation exists - default: - return translated[0]; // (singular, plural) translation tuple exists - } - }, - - ngettext: (singular, plural, n) => { - const translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated !== "undefined") - return translated[Documentation.PLURAL_EXPR(n)]; - return n === 1 ? singular : plural; - }, - - addTranslations: (catalog) => { - Object.assign(Documentation.TRANSLATIONS, catalog.messages); - Documentation.PLURAL_EXPR = new Function( - "n", - `return (${catalog.plural_expr})` - ); - Documentation.LOCALE = catalog.locale; - }, - - /** - * helper function to focus on search bar - */ - focusSearchBar: () => { - document.querySelectorAll("input[name=q]")[0]?.focus(); - }, - - /** - * Initialise the domain index toggle buttons - */ - initDomainIndexTable: () => { - const toggler = (el) => { - const idNumber = el.id.substr(7); - const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); - if (el.src.substr(-9) === "minus.png") { - el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; - toggledRows.forEach((el) => (el.style.display = "none")); - } else { - el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; - toggledRows.forEach((el) => (el.style.display = "")); - } - }; - - const togglerElements = document.querySelectorAll("img.toggler"); - togglerElements.forEach((el) => - el.addEventListener("click", (event) => toggler(event.currentTarget)) - ); - togglerElements.forEach((el) => (el.style.display = "")); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); - }, - - initOnKeyListeners: () => { - // only install a listener if it is really needed - if ( - !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && - !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS - ) - return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.altKey || event.ctrlKey || event.metaKey) return; - - if (!event.shiftKey) { - switch (event.key) { - case "ArrowLeft": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const prevLink = document.querySelector('link[rel="prev"]'); - if (prevLink && prevLink.href) { - window.location.href = prevLink.href; - event.preventDefault(); - } - break; - case "ArrowRight": - if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; - - const nextLink = document.querySelector('link[rel="next"]'); - if (nextLink && nextLink.href) { - window.location.href = nextLink.href; - event.preventDefault(); - } - break; - } - } - - // some keyboard layouts may need Shift to get / - switch (event.key) { - case "/": - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; - Documentation.focusSearchBar(); - event.preventDefault(); - } - }); - }, -}; - -// quick alias for translations -const _ = Documentation.gettext; - -_ready(Documentation.init); diff --git a/psi/docs/_build/html/_static/documentation_options.js b/psi/docs/_build/html/_static/documentation_options.js deleted file mode 100644 index b57ae3b..0000000 --- a/psi/docs/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,14 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '', - LANGUAGE: 'en', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false, - SHOW_SEARCH_SUMMARY: true, - ENABLE_SEARCH_SHORTCUTS: true, -}; \ No newline at end of file diff --git a/psi/docs/_build/html/_static/file.png b/psi/docs/_build/html/_static/file.png deleted file mode 100644 index a858a41..0000000 Binary files a/psi/docs/_build/html/_static/file.png and /dev/null differ diff --git a/psi/docs/_build/html/_static/language_data.js b/psi/docs/_build/html/_static/language_data.js deleted file mode 100644 index 250f566..0000000 --- a/psi/docs/_build/html/_static/language_data.js +++ /dev/null @@ -1,199 +0,0 @@ -/* - * language_data.js - * ~~~~~~~~~~~~~~~~ - * - * This script contains the language-specific data used by searchtools.js, - * namely the list of stopwords, stemmer, scorer and splitter. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; - - -/* Non-minified version is copied as a separate JS file, is available */ - -/** - * Porter Stemmer - */ -var Stemmer = function() { - - var step2list = { - ational: 'ate', - tional: 'tion', - enci: 'ence', - anci: 'ance', - izer: 'ize', - bli: 'ble', - alli: 'al', - entli: 'ent', - eli: 'e', - ousli: 'ous', - ization: 'ize', - ation: 'ate', - ator: 'ate', - alism: 'al', - iveness: 'ive', - fulness: 'ful', - ousness: 'ous', - aliti: 'al', - iviti: 'ive', - biliti: 'ble', - logi: 'log' - }; - - var step3list = { - icate: 'ic', - ative: '', - alize: 'al', - iciti: 'ic', - ical: 'ic', - ful: '', - ness: '' - }; - - var c = "[^aeiou]"; // consonant - var v = "[aeiouy]"; // vowel - var C = c + "[^aeiouy]*"; // consonant sequence - var V = v + "[aeiou]*"; // vowel sequence - - var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 - var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 - var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 - var s_v = "^(" + C + ")?" + v; // vowel in stem - - this.stemWord = function (w) { - var stem; - var suffix; - var firstch; - var origword = w; - - if (w.length < 3) - return w; - - var re; - var re2; - var re3; - var re4; - - firstch = w.substr(0,1); - if (firstch == "y") - w = firstch.toUpperCase() + w.substr(1); - - // Step 1a - re = /^(.+?)(ss|i)es$/; - re2 = /^(.+?)([^s])s$/; - - if (re.test(w)) - w = w.replace(re,"$1$2"); - else if (re2.test(w)) - w = w.replace(re2,"$1$2"); - - // Step 1b - re = /^(.+?)eed$/; - re2 = /^(.+?)(ed|ing)$/; - if (re.test(w)) { - var fp = re.exec(w); - re = new RegExp(mgr0); - if (re.test(fp[1])) { - re = /.$/; - w = w.replace(re,""); - } - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1]; - re2 = new RegExp(s_v); - if (re2.test(stem)) { - w = stem; - re2 = /(at|bl|iz)$/; - re3 = new RegExp("([^aeiouylsz])\\1$"); - re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re2.test(w)) - w = w + "e"; - else if (re3.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - else if (re4.test(w)) - w = w + "e"; - } - } - - // Step 1c - re = /^(.+?)y$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(s_v); - if (re.test(stem)) - w = stem + "i"; - } - - // Step 2 - re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step2list[suffix]; - } - - // Step 3 - re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - suffix = fp[2]; - re = new RegExp(mgr0); - if (re.test(stem)) - w = stem + step3list[suffix]; - } - - // Step 4 - re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; - re2 = /^(.+?)(s|t)(ion)$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - if (re.test(stem)) - w = stem; - } - else if (re2.test(w)) { - var fp = re2.exec(w); - stem = fp[1] + fp[2]; - re2 = new RegExp(mgr1); - if (re2.test(stem)) - w = stem; - } - - // Step 5 - re = /^(.+?)e$/; - if (re.test(w)) { - var fp = re.exec(w); - stem = fp[1]; - re = new RegExp(mgr1); - re2 = new RegExp(meq1); - re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); - if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) - w = stem; - } - re = /ll$/; - re2 = new RegExp(mgr1); - if (re.test(w) && re2.test(w)) { - re = /.$/; - w = w.replace(re,""); - } - - // and turn initial Y back to y - if (firstch == "y") - w = firstch.toLowerCase() + w.substr(1); - return w; - } -} - diff --git a/psi/docs/_build/html/_static/minus.png b/psi/docs/_build/html/_static/minus.png deleted file mode 100644 index d96755f..0000000 Binary files a/psi/docs/_build/html/_static/minus.png and /dev/null differ diff --git a/psi/docs/_build/html/_static/plus.png b/psi/docs/_build/html/_static/plus.png deleted file mode 100644 index 7107cec..0000000 Binary files a/psi/docs/_build/html/_static/plus.png and /dev/null differ diff --git a/psi/docs/_build/html/_static/pygments.css b/psi/docs/_build/html/_static/pygments.css deleted file mode 100644 index 9abe04b..0000000 --- a/psi/docs/_build/html/_static/pygments.css +++ /dev/null @@ -1,83 +0,0 @@ -pre { line-height: 125%; } -td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } -td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #8f5902; font-style: italic } /* Comment */ -.highlight .err { color: #a40000; border: 1px solid #ef2929 } /* Error */ -.highlight .g { color: #000000 } /* Generic */ -.highlight .k { color: #004461; font-weight: bold } /* Keyword */ -.highlight .l { color: #000000 } /* Literal */ -.highlight .n { color: #000000 } /* Name */ -.highlight .o { color: #582800 } /* Operator */ -.highlight .x { color: #000000 } /* Other */ -.highlight .p { color: #000000; font-weight: bold } /* Punctuation */ -.highlight .ch { color: #8f5902; font-style: italic } /* Comment.Hashbang */ -.highlight .cm { color: #8f5902; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #8f5902 } /* Comment.Preproc */ -.highlight .cpf { color: #8f5902; font-style: italic } /* Comment.PreprocFile */ -.highlight .c1 { color: #8f5902; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #8f5902; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #a40000 } /* Generic.Deleted */ -.highlight .ge { color: #000000; font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #ef2929 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #888888 } /* Generic.Output */ -.highlight .gp { color: #745334 } /* Generic.Prompt */ -.highlight .gs { color: #000000; font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #a40000; font-weight: bold } /* Generic.Traceback */ -.highlight .kc { color: #004461; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #004461; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #004461; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #004461; font-weight: bold } /* Keyword.Pseudo */ -.highlight .kr { color: #004461; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #004461; font-weight: bold } /* Keyword.Type */ -.highlight .ld { color: #000000 } /* Literal.Date */ -.highlight .m { color: #990000 } /* Literal.Number */ -.highlight .s { color: #4e9a06 } /* Literal.String */ -.highlight .na { color: #c4a000 } /* Name.Attribute */ -.highlight .nb { color: #004461 } /* Name.Builtin */ -.highlight .nc { color: #000000 } /* Name.Class */ -.highlight .no { color: #000000 } /* Name.Constant */ -.highlight .nd { color: #888888 } /* Name.Decorator */ -.highlight .ni { color: #ce5c00 } /* Name.Entity */ -.highlight .ne { color: #cc0000; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #000000 } /* Name.Function */ -.highlight .nl { color: #f57900 } /* Name.Label */ -.highlight .nn { color: #000000 } /* Name.Namespace */ -.highlight .nx { color: #000000 } /* Name.Other */ -.highlight .py { color: #000000 } /* Name.Property */ -.highlight .nt { color: #004461; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #000000 } /* Name.Variable */ -.highlight .ow { color: #004461; font-weight: bold } /* Operator.Word */ -.highlight .pm { color: #000000; font-weight: bold } /* Punctuation.Marker */ -.highlight .w { color: #f8f8f8; text-decoration: underline } /* Text.Whitespace */ -.highlight .mb { color: #990000 } /* Literal.Number.Bin */ -.highlight .mf { color: #990000 } /* Literal.Number.Float */ -.highlight .mh { color: #990000 } /* Literal.Number.Hex */ -.highlight .mi { color: #990000 } /* Literal.Number.Integer */ -.highlight .mo { color: #990000 } /* Literal.Number.Oct */ -.highlight .sa { color: #4e9a06 } /* Literal.String.Affix */ -.highlight .sb { color: #4e9a06 } /* Literal.String.Backtick */ -.highlight .sc { color: #4e9a06 } /* Literal.String.Char */ -.highlight .dl { color: #4e9a06 } /* Literal.String.Delimiter */ -.highlight .sd { color: #8f5902; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #4e9a06 } /* Literal.String.Double */ -.highlight .se { color: #4e9a06 } /* Literal.String.Escape */ -.highlight .sh { color: #4e9a06 } /* Literal.String.Heredoc */ -.highlight .si { color: #4e9a06 } /* Literal.String.Interpol */ -.highlight .sx { color: #4e9a06 } /* Literal.String.Other */ -.highlight .sr { color: #4e9a06 } /* Literal.String.Regex */ -.highlight .s1 { color: #4e9a06 } /* Literal.String.Single */ -.highlight .ss { color: #4e9a06 } /* Literal.String.Symbol */ -.highlight .bp { color: #3465a4 } /* Name.Builtin.Pseudo */ -.highlight .fm { color: #000000 } /* Name.Function.Magic */ -.highlight .vc { color: #000000 } /* Name.Variable.Class */ -.highlight .vg { color: #000000 } /* Name.Variable.Global */ -.highlight .vi { color: #000000 } /* Name.Variable.Instance */ -.highlight .vm { color: #000000 } /* Name.Variable.Magic */ -.highlight .il { color: #990000 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/psi/docs/_build/html/_static/searchtools.js b/psi/docs/_build/html/_static/searchtools.js deleted file mode 100644 index 97d56a7..0000000 --- a/psi/docs/_build/html/_static/searchtools.js +++ /dev/null @@ -1,566 +0,0 @@ -/* - * searchtools.js - * ~~~~~~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for the full-text search. - * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ -"use strict"; - -/** - * Simple result scoring code. - */ -if (typeof Scorer === "undefined") { - var Scorer = { - // Implement the following function to further tweak the score for each result - // The function takes a result array [docname, title, anchor, descr, score, filename] - // and returns the new score. - /* - score: result => { - const [docname, title, anchor, descr, score, filename] = result - return score - }, - */ - - // query matches the full name of an object - objNameMatch: 11, - // or matches in the last dotted part of the object name - objPartialMatch: 6, - // Additive scores depending on the priority of the object - objPrio: { - 0: 15, // used to be importantResults - 1: 5, // used to be objectResults - 2: -5, // used to be unimportantResults - }, - // Used when the priority is not in the mapping. - objPrioDefault: 0, - - // query found in title - title: 15, - partialTitle: 7, - // query found in terms - term: 5, - partialTerm: 2, - }; -} - -const _removeChildren = (element) => { - while (element && element.lastChild) element.removeChild(element.lastChild); -}; - -/** - * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping - */ -const _escapeRegExp = (string) => - string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string - -const _displayItem = (item, searchTerms) => { - const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; - const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; - const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; - const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; - - const [docName, title, anchor, descr, score, _filename] = item; - - let listItem = document.createElement("li"); - let requestUrl; - let linkUrl; - if (docBuilder === "dirhtml") { - // dirhtml builder - let dirname = docName + "/"; - if (dirname.match(/\/index\/$/)) - dirname = dirname.substring(0, dirname.length - 6); - else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; - linkUrl = requestUrl; - } else { - // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; - linkUrl = docName + docLinkSuffix; - } - let linkEl = listItem.appendChild(document.createElement("a")); - linkEl.href = linkUrl + anchor; - linkEl.dataset.score = score; - linkEl.innerHTML = title; - if (descr) - listItem.appendChild(document.createElement("span")).innerHTML = - " (" + descr + ")"; - else if (showSearchSummary) - fetch(requestUrl) - .then((responseData) => responseData.text()) - .then((data) => { - if (data) - listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) - ); - }); - Search.output.appendChild(listItem); -}; -const _finishSearch = (resultCount) => { - Search.stopPulse(); - Search.title.innerText = _("Search Results"); - if (!resultCount) - Search.status.innerText = Documentation.gettext( - "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." - ); - else - Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); -}; -const _displayNextItem = ( - results, - resultCount, - searchTerms -) => { - // results left, load the summary and display it - // this is intended to be dynamic (don't sub resultsCount) - if (results.length) { - _displayItem(results.pop(), searchTerms); - setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), - 5 - ); - } - // search finished, update title and status message - else _finishSearch(resultCount); -}; - -/** - * Default splitQuery function. Can be overridden in ``sphinx.search`` with a - * custom function per language. - * - * The regular expression works by splitting the string on consecutive characters - * that are not Unicode letters, numbers, underscores, or emoji characters. - * This is the same as ``\W+`` in Python, preserving the surrogate pair area. - */ -if (typeof splitQuery === "undefined") { - var splitQuery = (query) => query - .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) - .filter(term => term) // remove remaining empty strings -} - -/** - * Search Module - */ -const Search = { - _index: null, - _queued_query: null, - _pulse_status: -1, - - htmlToText: (htmlString) => { - const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); - const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; - console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." - ); - return ""; - }, - - init: () => { - const query = new URLSearchParams(window.location.search).get("q"); - document - .querySelectorAll('input[name="q"]') - .forEach((el) => (el.value = query)); - if (query) Search.performSearch(query); - }, - - loadIndex: (url) => - (document.body.appendChild(document.createElement("script")).src = url), - - setIndex: (index) => { - Search._index = index; - if (Search._queued_query !== null) { - const query = Search._queued_query; - Search._queued_query = null; - Search.query(query); - } - }, - - hasIndex: () => Search._index !== null, - - deferQuery: (query) => (Search._queued_query = query), - - stopPulse: () => (Search._pulse_status = -1), - - startPulse: () => { - if (Search._pulse_status >= 0) return; - - const pulse = () => { - Search._pulse_status = (Search._pulse_status + 1) % 4; - Search.dots.innerText = ".".repeat(Search._pulse_status); - if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); - }; - pulse(); - }, - - /** - * perform a search for something (or wait until index is loaded) - */ - performSearch: (query) => { - // create the required interface elements - const searchText = document.createElement("h2"); - searchText.textContent = _("Searching"); - const searchSummary = document.createElement("p"); - searchSummary.classList.add("search-summary"); - searchSummary.innerText = ""; - const searchList = document.createElement("ul"); - searchList.classList.add("search"); - - const out = document.getElementById("search-results"); - Search.title = out.appendChild(searchText); - Search.dots = Search.title.appendChild(document.createElement("span")); - Search.status = out.appendChild(searchSummary); - Search.output = out.appendChild(searchList); - - const searchProgress = document.getElementById("search-progress"); - // Some themes don't use the search progress node - if (searchProgress) { - searchProgress.innerText = _("Preparing search..."); - } - Search.startPulse(); - - // index already loaded, the browser was quick! - if (Search.hasIndex()) Search.query(query); - else Search.deferQuery(query); - }, - - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - - // stem the search terms and add them to the correct list - const stemmer = new Stemmer(); - const searchTerms = new Set(); - const excludedTerms = new Set(); - const highlightTerms = new Set(); - const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); - splitQuery(query.trim()).forEach((queryTerm) => { - const queryTermLower = queryTerm.toLowerCase(); - - // maybe skip this "word" - // stopwords array is from language_data.js - if ( - stopwords.indexOf(queryTermLower) !== -1 || - queryTerm.match(/^\d+$/) - ) - return; - - // stem the word - let word = stemmer.stemWord(queryTermLower); - // select the correct list - if (word[0] === "-") excludedTerms.add(word.substr(1)); - else { - searchTerms.add(word); - highlightTerms.add(queryTermLower); - } - }); - - if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js - localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) - } - - // console.debug("SEARCH: searching for:"); - // console.info("required: ", [...searchTerms]); - // console.info("excluded: ", [...excludedTerms]); - - // array of [docname, title, anchor, descr, score, filename] - let results = []; - _removeChildren(document.getElementById("search-progress")); - - const queryLower = query.toLowerCase(); - for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { - for (const [file, id] of foundTitles) { - let score = Math.round(100 * queryLower.length / title.length) - results.push([ - docNames[file], - titles[file] !== title ? `${titles[file]} > ${title}` : title, - id !== null ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // search for explicit entries in index directives - for (const [entry, foundEntries] of Object.entries(indexEntries)) { - if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ - docNames[file], - titles[file], - id ? "#" + id : "", - null, - score, - filenames[file], - ]); - } - } - } - - // lookup as object - objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) - ); - - // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); - - // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); - - // remove duplicate search results - // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept - let seen = new Set(); - results = results.reverse().reduce((acc, result) => { - let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); - if (!seen.has(resultStr)) { - acc.push(result); - seen.add(resultStr); - } - return acc; - }, []); - - results = results.reverse(); - - // for debugging - //Search.lastresults = results.slice(); // a copy - // console.info("search results:", Search.lastresults); - - // print the results - _displayNextItem(results, results.length, searchTerms); - }, - - /** - * search for object names - */ - performObjectSearch: (object, objectTerms) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const objects = Search._index.objects; - const objNames = Search._index.objnames; - const titles = Search._index.titles; - - const results = []; - - const objectSearchCallback = (prefix, match) => { - const name = match[4] - const fullname = (prefix ? prefix + "." : "") + name; - const fullnameLower = fullname.toLowerCase(); - if (fullnameLower.indexOf(object) < 0) return; - - let score = 0; - const parts = fullnameLower.split("."); - - // check for different match types: exact matches of full name or - // "last name" (i.e. last dotted part) - if (fullnameLower === object || parts.slice(-1)[0] === object) - score += Scorer.objNameMatch; - else if (parts.slice(-1)[0].indexOf(object) > -1) - score += Scorer.objPartialMatch; // matches in last name - - const objName = objNames[match[1]][2]; - const title = titles[match[0]]; - - // If more than one term searched for, we require other words to be - // found in the name/title/description - const otherTerms = new Set(objectTerms); - otherTerms.delete(object); - if (otherTerms.size > 0) { - const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); - if ( - [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) - ) - return; - } - - let anchor = match[3]; - if (anchor === "") anchor = fullname; - else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; - - const descr = objName + _(", in ") + title; - - // add custom score for some objects according to scorer - if (Scorer.objPrio.hasOwnProperty(match[2])) - score += Scorer.objPrio[match[2]]; - else score += Scorer.objPrioDefault; - - results.push([ - docNames[match[0]], - fullname, - "#" + anchor, - descr, - score, - filenames[match[0]], - ]); - }; - Object.keys(objects).forEach((prefix) => - objects[prefix].forEach((array) => - objectSearchCallback(prefix, array) - ) - ); - return results; - }, - - /** - * search for full-text terms in the index - */ - performTermsSearch: (searchTerms, excludedTerms) => { - // prepare search - const terms = Search._index.terms; - const titleTerms = Search._index.titleterms; - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - - const scoreMap = new Map(); - const fileMap = new Map(); - - // perform the search on the required terms - searchTerms.forEach((word) => { - const files = []; - const arr = [ - { files: terms[word], score: Scorer.term }, - { files: titleTerms[word], score: Scorer.title }, - ]; - // add support for partial matches - if (word.length > 2) { - const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); - } - - // no match but word was a required one - if (arr.every((record) => record.files === undefined)) return; - - // found search word in contents - arr.forEach((record) => { - if (record.files === undefined) return; - - let recordFiles = record.files; - if (recordFiles.length === undefined) recordFiles = [recordFiles]; - files.push(...recordFiles); - - // set score for the word in each file - recordFiles.forEach((file) => { - if (!scoreMap.has(file)) scoreMap.set(file, {}); - scoreMap.get(file)[word] = record.score; - }); - }); - - // create the mapping - files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); - }); - }); - - // now check if the files don't contain excluded terms - const results = []; - for (const [file, wordList] of fileMap) { - // check if all requirements are matched - - // as search terms with length < 3 are discarded - const filteredTermCount = [...searchTerms].filter( - (term) => term.length > 2 - ).length; - if ( - wordList.length !== searchTerms.size && - wordList.length !== filteredTermCount - ) - continue; - - // ensure that none of the excluded terms is in the search result - if ( - [...excludedTerms].some( - (term) => - terms[term] === file || - titleTerms[term] === file || - (terms[term] || []).includes(file) || - (titleTerms[term] || []).includes(file) - ) - ) - break; - - // select one (max) score for the file. - const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); - // add result to the result list - results.push([ - docNames[file], - titles[file], - "", - null, - score, - filenames[file], - ]); - } - return results; - }, - - /** - * helper function to return a node containing the - * search summary for a given text. keywords is a list - * of stemmed words. - */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); - if (text === "") return null; - - const textLower = text.toLowerCase(); - const actualStartPosition = [...keywords] - .map((k) => textLower.indexOf(k.toLowerCase())) - .filter((i) => i > -1) - .slice(-1)[0]; - const startWithContext = Math.max(actualStartPosition - 120, 0); - - const top = startWithContext === 0 ? "" : "..."; - const tail = startWithContext + 240 < text.length ? "..." : ""; - - let summary = document.createElement("p"); - summary.classList.add("context"); - summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; - - return summary; - }, -}; - -_ready(Search.init); diff --git a/psi/docs/_build/html/_static/sphinx_highlight.js b/psi/docs/_build/html/_static/sphinx_highlight.js deleted file mode 100644 index aae669d..0000000 --- a/psi/docs/_build/html/_static/sphinx_highlight.js +++ /dev/null @@ -1,144 +0,0 @@ -/* Highlighting utilities for Sphinx HTML documentation. */ -"use strict"; - -const SPHINX_HIGHLIGHT_ENABLED = true - -/** - * highlight a given string on a node by wrapping it in - * span elements with the given class name. - */ -const _highlight = (node, addItems, text, className) => { - if (node.nodeType === Node.TEXT_NODE) { - const val = node.nodeValue; - const parent = node.parentNode; - const pos = val.toLowerCase().indexOf(text); - if ( - pos >= 0 && - !parent.classList.contains(className) && - !parent.classList.contains("nohighlight") - ) { - let span; - - const closestNode = parent.closest("body, svg, foreignObject"); - const isInSVG = closestNode && closestNode.matches("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.classList.add(className); - } - - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - parent.insertBefore( - span, - parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling - ) - ); - node.nodeValue = val.substr(0, pos); - - if (isInSVG) { - const rect = document.createElementNS( - "http://www.w3.org/2000/svg", - "rect" - ); - const bbox = parent.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute("class", className); - addItems.push({ parent: parent, target: rect }); - } - } - } else if (node.matches && !node.matches("button, select, textarea")) { - node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); - } -}; -const _highlightText = (thisNode, text, className) => { - let addItems = []; - _highlight(thisNode, addItems, text, className); - addItems.forEach((obj) => - obj.parent.insertAdjacentElement("beforebegin", obj.target) - ); -}; - -/** - * Small JavaScript module for the documentation. - */ -const SphinxHighlight = { - - /** - * highlight the search words provided in localstorage in the text - */ - highlightSearchWords: () => { - if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight - - // get and clear terms from localstorage - const url = new URL(window.location); - const highlight = - localStorage.getItem("sphinx_highlight_terms") - || url.searchParams.get("highlight") - || ""; - localStorage.removeItem("sphinx_highlight_terms") - url.searchParams.delete("highlight"); - window.history.replaceState({}, "", url); - - // get individual terms from highlight string - const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); - if (terms.length === 0) return; // nothing to do - - // There should never be more than one element matching "div.body" - const divBody = document.querySelectorAll("div.body"); - const body = divBody.length ? divBody[0] : document.querySelector("body"); - window.setTimeout(() => { - terms.forEach((term) => _highlightText(body, term, "highlighted")); - }, 10); - - const searchBox = document.getElementById("searchbox"); - if (searchBox === null) return; - searchBox.appendChild( - document - .createRange() - .createContextualFragment( - '" - ) - ); - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords: () => { - document - .querySelectorAll("#searchbox .highlight-link") - .forEach((el) => el.remove()); - document - .querySelectorAll("span.highlighted") - .forEach((el) => el.classList.remove("highlighted")); - localStorage.removeItem("sphinx_highlight_terms") - }, - - initEscapeListener: () => { - // only install a listener if it is really needed - if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; - - document.addEventListener("keydown", (event) => { - // bail for input elements - if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; - // bail with special keys - if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; - if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { - SphinxHighlight.hideSearchWords(); - event.preventDefault(); - } - }); - }, -}; - -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); diff --git a/psi/docs/_build/html/api/psi.html b/psi/docs/_build/html/api/psi.html deleted file mode 100644 index b81623a..0000000 --- a/psi/docs/_build/html/api/psi.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - Psi API Reference — Python documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-

Psi API Reference¶

-

Psi -@TODO è¯æ³•分æžå™¨ -@BODY 似乎è¦å†™çš„还蛮多的,所以先写几个TODO List

-
-
-class psi.Psi(input)¶
-

Bases: object

-
-
-execute()¶
-
- -
-
-get_result()¶
-
- -
-
-set_input(input)¶
-
- -
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/psi/docs/_build/html/genindex.html b/psi/docs/_build/html/genindex.html deleted file mode 100644 index 94a31bf..0000000 --- a/psi/docs/_build/html/genindex.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - Index — Python documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- - -

Index

- -
- E - | G - | M - | P - | S - -
-

E

- - -
- -

G

- - -
- -

M

- - -
    -
  • - module - -
  • -
- -

P

- - - -
- -

S

- - -
- - - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/psi/docs/_build/html/index.html b/psi/docs/_build/html/index.html deleted file mode 100644 index f656e23..0000000 --- a/psi/docs/_build/html/index.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - <no title> — Python documentation - - - - - - - - - - - - - - - - -
-
-
- - -
- -
-
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/psi/docs/_build/html/objects.inv b/psi/docs/_build/html/objects.inv deleted file mode 100644 index 1f7c19f..0000000 --- a/psi/docs/_build/html/objects.inv +++ /dev/null @@ -1,6 +0,0 @@ -# Sphinx inventory version 2 -# Project: Python -# Version: -# The remainder of this file is compressed using zlib. -xÚË -Â0E÷ùŠÝÖǶˆàÒ…Pô$&×6ÓФ`ÿÞÖi±±î†;ç\˜ñÁoÒG©k ÚôfíƒYñaœ&KJD—eÌ*+C í1+<¡êˆw/bQê_pŽx­jÿãCËçë¼(DêRQ2e¨»åéŒ;*8‘çñ|+VÞ`;iHÙ:v£ø`}óˆØ¹’¢‰{Ñ~ïK¡o’aÁƉ_Ïգ팖5íénjÈJS‘3v.¼Ïdñuÿ­í \ No newline at end of file diff --git a/psi/docs/_build/html/py-modindex.html b/psi/docs/_build/html/py-modindex.html deleted file mode 100644 index e77ab6a..0000000 --- a/psi/docs/_build/html/py-modindex.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - Python Module Index — Python documentation - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- - -

Python Module Index

- -
- p -
- - - - - - - -
 
- p
- psi -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/psi/docs/_build/html/search.html b/psi/docs/_build/html/search.html deleted file mode 100644 index 1eee616..0000000 --- a/psi/docs/_build/html/search.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - Search — Python documentation - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - -
- -

Search

- - - - -

- Searching for multiple words only shows matches that contain - all words. -

- - -
- - - -
- - - -
- -
- - -
- -
-
- -
-
- - - - - - - \ No newline at end of file diff --git a/psi/docs/_build/html/searchindex.js b/psi/docs/_build/html/searchindex.js deleted file mode 100644 index c7ff1e2..0000000 --- a/psi/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({"docnames": ["api/psi", "index"], "filenames": ["api\\psi.rst", "index.rst"], "titles": ["Psi API Reference", "<no title>"], "terms": {"todo": 0, "\u8bcd\u6cd5\u5206\u6790\u5668": 0, "bodi": 0, "\u4f3c\u4e4e\u8981\u5199\u7684\u8fd8\u86ee\u591a\u7684": 0, "\u6240\u4ee5\u5148\u5199\u51e0\u4e2atodo": 0, "list": 0, "class": 0, "input": 0, "base": 0, "object": 0, "execut": 0, "get_result": 0, "set_input": 0}, "objects": {"": [[0, 0, 0, "-", "psi"]], "psi": [[0, 1, 1, "", "Psi"]], "psi.Psi": [[0, 2, 1, "", "execute"], [0, 2, 1, "", "get_result"], [0, 2, 1, "", "set_input"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"]}, "titleterms": {"psi": 0, "api": 0, "refer": 0}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Psi API Reference": [[0, "module-psi"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/psi/docs/api/psi.rst b/psi/docs/api/psi.rst deleted file mode 100644 index 8177e9b..0000000 --- a/psi/docs/api/psi.rst +++ /dev/null @@ -1,7 +0,0 @@ -Psi API Reference -================= - -.. automodule:: psi - :members: - :undoc-members: - :show-inheritance: diff --git a/psi/docs/conf.py b/psi/docs/conf.py deleted file mode 100644 index b915874..0000000 --- a/psi/docs/conf.py +++ /dev/null @@ -1,7 +0,0 @@ -""" -@TODO Sphinxé…ç½®æ·»åŠ ç«™ç‚¹åŸºæœ¬ä¿¡æ¯ -""" - -extensions = [ - 'sphinx.ext.autodoc', -] diff --git a/psi/docs/index.rst b/psi/docs/index.rst deleted file mode 100644 index cb919b0..0000000 --- a/psi/docs/index.rst +++ /dev/null @@ -1,5 +0,0 @@ -.. toctree:: - :maxdepth: 2 - :caption: Modules - - psi/ \ No newline at end of file diff --git a/tests/if-else.py b/tests/if-else.py index b557696..933d567 100644 --- a/tests/if-else.py +++ b/tests/if-else.py @@ -1,11 +1,77 @@ -""" -@TODO 包括`tests\if-else.py`在内的å„ç§ç¤ºä¾‹æ–‡ä»¶çš„ä»‹ç» -""" +class AssignNode: + def __init__(self, variable, value): + self.variable = variable + self.value = value -from psi import Psi +class ComparisonNode: + def __init__(self, operator, left, right): + self.operator = operator + self.left = left + self.right = right -psi_instance = Psi("? a == 1: reply: 你好") -print(psi_instance) -psi_instance.execute() -result = psi_instance.get_result() -print(result) \ No newline at end of file +class IfNode: + def __init__(self, condition, body): + self.condition = condition + self.body = body + +class ReplyNode: + def __init__(self, message): + self.message = message + +import ast + +def parse_code(code): + tree = ast.parse(code) + return parse_node(tree.body[0]) + +def parse_node(node): + if isinstance(node, ast.Assign): + variable = node.targets[0].id + value = parse_node(node.value) + return AssignNode(variable, value) + elif isinstance(node, ast.Compare): + operator = node.ops[0] + left = parse_node(node.left) + right = parse_node(node.comparators[0]) + return ComparisonNode(operator, left, right) + elif isinstance(node, ast.If): + condition = parse_node(node.test) + body = parse_node(node.body[0]) + return IfNode(condition, body) + elif isinstance(node, ast.Expr): + return ReplyNode(node.value.s) + elif isinstance(node, ast.Name): + return node.id + elif isinstance(node, ast.Num): + return node.n + +def execute_ast(ast, environment): + if isinstance(ast, AssignNode): + environment[ast.variable] = ast.value + elif isinstance(ast, ComparisonNode): + left = execute_ast(ast.left, environment) + right = execute_ast(ast.right, environment) + if ast.operator == '==': + return left == right + elif ast.operator == '!=': + return left != right + elif ast.operator == '<': + return left < right + elif ast.operator == '>': + return left > right + elif isinstance(ast, IfNode): + condition = execute_ast(ast.condition, environment) + if condition: + execute_ast(ast.body, environment) + elif isinstance(ast, ReplyNode): + message = ast.message.format(**environment) + print(message) + +def main(): + code = input("请输入代ç : ") + ast = parse_code(code) + environment = {} + execute_ast(ast, environment) + +if __name__ == "__main__": + main() -- cgit v1.2.3-70-g09d2 From e47db36c1143c688d82a6ae0794cf0c8c016e1c6 Mon Sep 17 00:00:00 2001 From: Sourcery AI <> Date: Tue, 25 Jul 2023 04:38:01 +0000 Subject: 'Refactored by Sourcery' --- tests/if-else.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/if-else.py b/tests/if-else.py index 933d567..f97322a 100644 --- a/tests/if-else.py +++ b/tests/if-else.py @@ -60,8 +60,7 @@ def execute_ast(ast, environment): elif ast.operator == '>': return left > right elif isinstance(ast, IfNode): - condition = execute_ast(ast.condition, environment) - if condition: + if condition := execute_ast(ast.condition, environment): execute_ast(ast.body, environment) elif isinstance(ast, ReplyNode): message = ast.message.format(**environment) -- cgit v1.2.3-70-g09d2 From 061a6b4fdac5084aadb8493ec1b06b7d31f7d9e2 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:40:32 +0800 Subject: Update pages.yml --- .github/workflows/pages.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index 67b129b..f5a8f59 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -21,5 +21,7 @@ jobs: path: .cache restore-keys: | mkdocs-material- - - run: pip install mkdocs-material - - run: mkdocs gh-deploy --force + - run: | + cd docs + pip install mkdocs-material + mkdocs gh-deploy --force -- cgit v1.2.3-70-g09d2 From 3ab549ef365d475793ddc7ceb72e03d6d6b2bd5c Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:43:19 +0800 Subject: add requirements.txt --- .github/workflows/pages.yml | 2 +- docs/requirements.txt | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 docs/requirements.txt diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index f5a8f59..eaf6a06 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -23,5 +23,5 @@ jobs: mkdocs-material- - run: | cd docs - pip install mkdocs-material + pip install -r requirements.txt mkdocs gh-deploy --force diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000..27a991d --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,5 @@ +mkdocs-material +mkdocs-blog-plugin +mkdocs-git-revision-date-localized-plugin +mkdocs-git-committers +mkdocs-git-authors-plugin \ No newline at end of file -- cgit v1.2.3-70-g09d2 From bda577c760bc0fbb38e36f682358c9d82bade807 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:44:55 +0800 Subject: fix mkdocs-git-committers-2 --- docs/mkdocs.yml | 6 +++--- docs/requirements.txt | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 1273d5c..fc2f1ed 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -112,6 +112,6 @@ plugins: - search - git-authors # - git-revision-date-localized - # - git-committers: - # repository: HydroRoll-Team/psi - # branch: main \ No newline at end of file + - git-committers: + repository: HydroRoll-Team/psi + branch: main \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt index 27a991d..8e1e3bd 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs-material mkdocs-blog-plugin mkdocs-git-revision-date-localized-plugin -mkdocs-git-committers +mkdocs-git-committers-2 mkdocs-git-authors-plugin \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 7c29eb549b35fc451b77d659e71aade0ca4d51a8 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:45:52 +0800 Subject: remove git=committers --- docs/mkdocs.yml | 10 ++++++---- docs/requirements.txt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index fc2f1ed..415a321 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -111,7 +111,9 @@ plugins: - blog - search - git-authors - # - git-revision-date-localized - - git-committers: - repository: HydroRoll-Team/psi - branch: main \ No newline at end of file + - git-revision-date-localized: + enable_creation_date: true + fallback_to_build_date: true + # - git-committers: + # repository: HydroRoll-Team/psi + # branch: main \ No newline at end of file diff --git a/docs/requirements.txt b/docs/requirements.txt index 8e1e3bd..27a991d 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,5 @@ mkdocs-material mkdocs-blog-plugin mkdocs-git-revision-date-localized-plugin -mkdocs-git-committers-2 +mkdocs-git-committers mkdocs-git-authors-plugin \ No newline at end of file -- cgit v1.2.3-70-g09d2 From ac9655a54b874363db707a6805aa0a75ef03c16b Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:46:49 +0800 Subject: remove mkdocs-git-committers --- docs/requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index 27a991d..591b791 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,5 +1,4 @@ mkdocs-material mkdocs-blog-plugin mkdocs-git-revision-date-localized-plugin -mkdocs-git-committers mkdocs-git-authors-plugin \ No newline at end of file -- cgit v1.2.3-70-g09d2 From de83ca2884ae70552d67bcc8851178294b3b4c8f Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:48:27 +0800 Subject: keep dir --- docs/docs/javascripts/.gitkeep | 0 docs/docs/stylesheets/.gitkeep | 0 docs/overrides/.gitkeep | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/docs/javascripts/.gitkeep create mode 100644 docs/docs/stylesheets/.gitkeep create mode 100644 docs/overrides/.gitkeep diff --git a/docs/docs/javascripts/.gitkeep b/docs/docs/javascripts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/docs/stylesheets/.gitkeep b/docs/docs/stylesheets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/overrides/.gitkeep b/docs/overrides/.gitkeep new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3-70-g09d2 From ba2d8a5f64c2a0717a1c6a05302da9071c0b33d0 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 12:58:40 +0800 Subject: refresh --- readme.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/readme.rst b/readme.rst index 6e9776d..165fcd7 100644 --- a/readme.rst +++ b/readme.rst @@ -76,8 +76,10 @@ How to build docs :: git clone https://github.com/HydroRoll-Team/psi.git - cd psi/psi/docs - sphinx-build -b html . _build/html + cd docs + pip install -r requirements.txt + # mkdocs build + mkdocs serve License -- cgit v1.2.3-70-g09d2 From 3573c1603e94baa411514646ab1a83f4ad5f9144 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 13:13:13 +0800 Subject: url --- docs/mkdocs.yml | 7 +++++-- docs/requirements.txt | 3 ++- readme.rst | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 415a321..cd1570d 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,8 +1,11 @@ site_name: Psi Docs (Draft) repo_url: https://github.com/HydroRoll-Team/psi repo_name: HydroRoll-Team/psi -edit_uri: edit/main/docs/ - +edit_uri: edit/main/docs/docs/ +site_author: Hsiang Nianian +site_description: >- + Psi is a new programming language designed with simplicity, flexibility, and performance in mind. + It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. theme: name: material diff --git a/docs/requirements.txt b/docs/requirements.txt index 591b791..b27a670 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,4 +1,5 @@ mkdocs-material mkdocs-blog-plugin mkdocs-git-revision-date-localized-plugin -mkdocs-git-authors-plugin \ No newline at end of file +mkdocs-git-authors-plugin +mkdocs-material-extensions>=1.1 \ No newline at end of file diff --git a/readme.rst b/readme.rst index 165fcd7..b2089c0 100644 --- a/readme.rst +++ b/readme.rst @@ -82,6 +82,20 @@ How to build docs mkdocs serve +Documentation +------------- + +Psi documentation is available at `retrofor `_. + +You can also view it throw the following links: + + `vercel-1 `_ + + `vercel-2 `_ + + `gh-pages Date: Tue, 25 Jul 2023 13:14:20 +0800 Subject: fix --- readme.rst | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/readme.rst b/readme.rst index b2089c0..40367f4 100644 --- a/readme.rst +++ b/readme.rst @@ -89,11 +89,11 @@ Psi documentation is available at `retrofor `_ + `vercel-1 psi-alpha `_ - `vercel-2 `_ + `vercel-2 psi-retrofor `_ - `gh-pages `_ License -- cgit v1.2.3-70-g09d2 From 5c098db15c554caeb13fd0adff3ab3ee3e6826ab Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 13:18:49 +0800 Subject: site --- docs/overrides/main.html | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/overrides/main.html diff --git a/docs/overrides/main.html b/docs/overrides/main.html new file mode 100644 index 0000000..ec4ec2a --- /dev/null +++ b/docs/overrides/main.html @@ -0,0 +1,13 @@ +{% extends "base.html" %} + +{% block content %} + {{ super() }} + + {% if git_page_authors %} +
+ + Authors: {{ git_page_authors | default('enable mkdocs-git-authors-plugin') }} + +
+ {% endif %} +{% endblock %} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From f62c1f7373cbc8ed4e8429a3c0d7d665b187dbbe Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 13:39:37 +0800 Subject: add via --- docs/docs/changelog/index.md | 43 + docs/docs/css/neoteroi-cards.css | 102 +++ docs/docs/css/neoteroi-gantt.css | 328 ++++++++ docs/docs/css/neoteroi-mkdocs.css | 1399 +++++++++++++++++++++++++++++++++ docs/docs/css/neoteroi-mkdocs.min.css | 1 + docs/docs/css/neoteroi-spantable.css | 56 ++ docs/docs/css/neoteroi-timeline.css | 340 ++++++++ docs/mkdocs.yml | 49 ++ docs/overrides/main.html | 2 +- docs/requirements.txt | 3 +- 10 files changed, 2321 insertions(+), 2 deletions(-) create mode 100644 docs/docs/css/neoteroi-cards.css create mode 100644 docs/docs/css/neoteroi-gantt.css create mode 100644 docs/docs/css/neoteroi-mkdocs.css create mode 100644 docs/docs/css/neoteroi-mkdocs.min.css create mode 100644 docs/docs/css/neoteroi-spantable.css create mode 100644 docs/docs/css/neoteroi-timeline.css diff --git a/docs/docs/changelog/index.md b/docs/docs/changelog/index.md index e69de29..50e7928 100644 --- a/docs/docs/changelog/index.md +++ b/docs/docs/changelog/index.md @@ -0,0 +1,43 @@ +::gantt:: + +- title: Definition Phase + activities: + - title: Creative Brief + start: 2022-03-03 + lasts: 1 day + - title: Graphic Design Research + start: 2022-03-02 + end: 2022-03-10 + lasts: 2 weeks + - title: Brainstorming / Mood Boarding + start: 2022-03-11 + end: 2022-03-20 + +- title: Creation Phase + activities: + - title: Sketching + start: 2022-03-21 + end: 2022-04-01 + - title: Design Building + start: 2022-04-02 + end: 2022-04-20 + - title: Refining + start: 2022-04-21 + end: 2022-04-30 + +- title: Feedback Phase + activities: + - title: Presenting + start: 2022-04-22 + end: 2022-05-01 + - title: Revisions + start: 2022-05-02 + end: 2022-05-10 + +- title: Delivery Phase + activities: + - title: Final delivery + start: 2022-05-11 + end: 2022-05-12 + +::/gantt:: diff --git a/docs/docs/css/neoteroi-cards.css b/docs/docs/css/neoteroi-cards.css new file mode 100644 index 0000000..5a5152f --- /dev/null +++ b/docs/docs/css/neoteroi-cards.css @@ -0,0 +1,102 @@ +.nt-cards.nt-grid { + display: grid; + grid-auto-columns: 1fr; + gap: 0.5rem; + max-width: 100vw; + overflow-x: auto; + padding: 1px; +} +.nt-cards.nt-grid.cols-1 { + grid-template-columns: repeat(1, 1fr); +} +.nt-cards.nt-grid.cols-2 { + grid-template-columns: repeat(2, 1fr); +} +.nt-cards.nt-grid.cols-3 { + grid-template-columns: repeat(3, 1fr); +} +.nt-cards.nt-grid.cols-4 { + grid-template-columns: repeat(4, 1fr); +} +.nt-cards.nt-grid.cols-5 { + grid-template-columns: repeat(5, 1fr); +} +.nt-cards.nt-grid.cols-6 { + grid-template-columns: repeat(6, 1fr); +} + +@media only screen and (max-width: 400px) { + .nt-cards.nt-grid { + grid-template-columns: repeat(1, 1fr) !important; + } +} +.nt-card { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.nt-card:hover { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.24), 0 3px 1px -2px rgba(0, 0, 0, 0.3), 0 1px 5px 0 rgba(0, 0, 0, 0.22); +} + +[data-md-color-scheme=slate] .nt-card { + box-shadow: 0 2px 2px 0 rgba(4, 40, 33, 0.14), 0 3px 1px -2px rgba(40, 86, 94, 0.47), 0 1px 5px 0 rgba(139, 252, 255, 0.64); +} +[data-md-color-scheme=slate] .nt-card:hover { + box-shadow: 0 2px 2px 0 rgba(0, 255, 206, 0.14), 0 3px 1px -2px rgba(33, 156, 177, 0.47), 0 1px 5px 0 rgba(96, 251, 255, 0.64); +} + +.nt-card > a { + color: var(--md-default-fg-color); +} + +.nt-card > a > div { + cursor: pointer; +} + +.nt-card { + padding: 5px; + margin-bottom: 0.5rem; +} + +.nt-card-title { + font-size: 1rem; + font-weight: bold; + margin: 4px 0 8px 0; + line-height: 22px; +} + +.nt-card-content { + padding: 0.4rem 0.8rem 0.8rem 0.8rem; +} + +.nt-card-text { + font-size: 14px; + padding: 0; + margin: 0; +} + +.nt-card .nt-card-image { + text-align: center; + border-radius: 2px; + background-position: center center; + background-size: cover; + background-repeat: no-repeat; + min-height: 120px; +} + +.nt-card .nt-card-image.tags img { + margin-top: 12px; +} + +.nt-card .nt-card-image img { + height: 105px; + margin-top: 5px; +} + +.nt-card a:hover, +.nt-card a:focus { + color: var(--md-accent-fg-color); +} + +.nt-card h2 { + margin: 0; +} diff --git a/docs/docs/css/neoteroi-gantt.css b/docs/docs/css/neoteroi-gantt.css new file mode 100644 index 0000000..f93f202 --- /dev/null +++ b/docs/docs/css/neoteroi-gantt.css @@ -0,0 +1,328 @@ +/** + * Extra CSS for the neoteroi.projects.gantt extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +:root { + --nt-scrollbar-color: #2751b0; + --nt-plan-actions-height: 24px; + --nt-units-background: #ff9800; + --nt-months-background: #2751b0; + --nt-plan-vertical-line-color: #a3a3a3ad; +} + +.nt-pastello { + --nt-scrollbar-color: #9fb8f4; + --nt-units-background: #f5dc82; + --nt-months-background: #5b7fd1; +} + +[data-md-color-scheme=slate] { + --nt-units-background: #003773; +} +[data-md-color-scheme=slate] .nt-pastello { + --nt-units-background: #3f4997; +} + +.nt-plan-root { + min-height: 200px; + scrollbar-width: 20px; + scrollbar-color: var(--nt-scrollbar-color); + display: flex; +} +.nt-plan-root ::-webkit-scrollbar { + width: 20px; +} +.nt-plan-root ::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px grey; + border-radius: 10px; +} +.nt-plan-root ::-webkit-scrollbar-thumb { + background: var(--nt-scrollbar-color); + border-radius: 10px; +} +.nt-plan-root .nt-plan { + flex: 80%; +} +.nt-plan-root.no-groups .nt-plan-periods { + padding-left: 0; +} +.nt-plan-root.no-groups .nt-plan-group-summary { + display: none; +} +.nt-plan-root .nt-timeline-dot.bigger { + top: -10px; +} +.nt-plan-root .nt-timeline-dot.bigger[title] { + cursor: help; +} + +.nt-plan { + white-space: nowrap; + overflow-x: auto; + display: flex; +} +.nt-plan .ug-timeline-dot { + left: 368px; + top: -8px; + cursor: help; +} + +.months { + display: flex; +} + +.month { + flex: auto; + display: inline-block; + box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px inset; + background-color: var(--nt-months-background); + color: white; + text-transform: uppercase; + font-family: Roboto, Helvetica, Arial, sans-serif; + padding: 2px 5px; + font-size: 12px; + border: 1px solid #000; + width: 150px; + border-radius: 8px; +} + +.nt-plan-group-activities { + flex: auto; + position: relative; +} + +.nt-vline { + border-left: 1px dashed var(--nt-plan-vertical-line-color); + height: 100%; + left: 0; + position: absolute; + margin-left: -0.5px; + top: 0; + -webkit-transition: all 0.5s linear !important; + -moz-transition: all 0.5s linear !important; + -ms-transition: all 0.5s linear !important; + -o-transition: all 0.5s linear !important; + transition: all 0.5s linear !important; + z-index: -2; +} + +.nt-plan-activity { + display: flex; + margin: 2px 0; + background-color: rgba(187, 187, 187, 0.2509803922); +} + +.actions { + height: var(--nt-plan-actions-height); +} + +.actions { + position: relative; +} + +.period { + display: inline-block; + height: var(--nt-plan-actions-height); + width: 120px; + position: absolute; + left: 0px; + background: #1da1f2; + border-radius: 5px; + transition: all 0.5s; + cursor: help; + -webkit-transition: width 1s ease-in-out; + -moz-transition: width 1s ease-in-out; + -o-transition: width 1s ease-in-out; + transition: width 1s ease-in-out; +} +.period .nt-tooltip { + display: none; + top: 30px; + position: relative; + padding: 1rem; + text-align: center; + font-size: 12px; +} +.period:hover .nt-tooltip { + display: inline-block; +} + +.period-0 { + left: 340px; + visibility: visible; + background-color: rgb(69, 97, 101); +} + +.period-1 { + left: 40px; + visibility: visible; + background-color: green; +} + +.period-2 { + left: 120px; + visibility: visible; + background-color: pink; + width: 80px; +} + +.period-3 { + left: 190px; + visibility: visible; + background-color: darkred; + width: 150px; +} + +.weeks > span, +.days > span { + height: 25px; +} + +.weeks > span { + display: inline-block; + margin: 0; + padding: 0; + font-weight: bold; +} +.weeks > span .week-text { + font-size: 10px; + position: absolute; + display: inline-block; + padding: 3px 4px; +} + +.days { + z-index: -2; + position: relative; +} + +.day-text { + font-size: 10px; + position: absolute; + display: inline-block; + padding: 3px 4px; +} + +.period span { + font-size: 12px; + vertical-align: top; + margin-left: 4px; + color: black; + background: rgba(255, 255, 255, 0.6588235294); + border-radius: 6px; + padding: 0 4px; +} + +.weeks, +.days { + height: 20px; + display: flex; + box-sizing: content-box; +} + +.months { + display: flex; +} + +.week, +.day { + height: 20px; + position: relative; + border: 1; + flex: auto; + border: 2px solid white; + border-radius: 4px; + background-color: var(--nt-units-background); + cursor: help; +} + +.years { + display: flex; +} + +.year { + text-align: center; + border-right: 1px solid var(--nt-plan-vertical-line-color); + font-weight: bold; +} +.year:first-child { + border-left: 1px solid var(--nt-plan-vertical-line-color); +} +.year:first-child:last-child { + width: 100%; +} + +.quarters { + display: flex; +} + +.quarter { + width: 12.5%; + text-align: center; + border-right: 1px solid var(--nt-plan-vertical-line-color); + font-weight: bold; +} +.quarter:first-child { + border-left: 1px solid var(--nt-plan-vertical-line-color); +} + +.nt-plan-group { + margin: 20px 0; + position: relative; +} + +.nt-plan-group { + display: flex; +} + +.nt-plan-group-summary { + background: #2751b0; + width: 150px; + white-space: normal; + padding: 0.1rem 0.5rem; + border-radius: 5px; + color: #fff; + z-index: 3; +} +.nt-plan-group-summary p { + margin: 0; + padding: 0; + font-size: 0.6rem; + color: #fff; +} + +.nt-plan-group-summary, +.month, +.period, +.week, +.day, +.nt-tooltip { + border: 3px solid white; + box-shadow: 0 2px 3px -1px rgba(0, 0, 0, 0.2), 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.nt-plan-periods { + padding-left: 150px; +} + +.months { + z-index: 2; + position: relative; +} + +.weeks { + position: relative; + top: -2px; + z-index: 0; +} + +.month, +.quarter, +.year, +.week, +.day, +.nt-tooltip { + font-family: Roboto, Helvetica, Arial, sans-serif; + box-sizing: border-box; +} diff --git a/docs/docs/css/neoteroi-mkdocs.css b/docs/docs/css/neoteroi-mkdocs.css new file mode 100644 index 0000000..ee7d53a --- /dev/null +++ b/docs/docs/css/neoteroi-mkdocs.css @@ -0,0 +1,1399 @@ +/** + * All CSS for the neoteroi.projects.gantt extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +:root { + --nt-color-0: #CD853F; + --nt-color-1: #B22222; + --nt-color-2: #000080; + --nt-color-3: #4B0082; + --nt-color-4: #3CB371; + --nt-color-5: #D2B48C; + --nt-color-6: #FF00FF; + --nt-color-7: #98FB98; + --nt-color-8: #FFEBCD; + --nt-color-9: #2E8B57; + --nt-color-10: #6A5ACD; + --nt-color-11: #48D1CC; + --nt-color-12: #FFA500; + --nt-color-13: #F4A460; + --nt-color-14: #A52A2A; + --nt-color-15: #FFE4C4; + --nt-color-16: #FF4500; + --nt-color-17: #AFEEEE; + --nt-color-18: #FA8072; + --nt-color-19: #2F4F4F; + --nt-color-20: #FFDAB9; + --nt-color-21: #BC8F8F; + --nt-color-22: #FFC0CB; + --nt-color-23: #00FA9A; + --nt-color-24: #F0FFF0; + --nt-color-25: #FFFACD; + --nt-color-26: #F5F5F5; + --nt-color-27: #FF6347; + --nt-color-28: #FFFFF0; + --nt-color-29: #7FFFD4; + --nt-color-30: #E9967A; + --nt-color-31: #7B68EE; + --nt-color-32: #FFF8DC; + --nt-color-33: #0000CD; + --nt-color-34: #D2691E; + --nt-color-35: #708090; + --nt-color-36: #5F9EA0; + --nt-color-37: #008080; + --nt-color-38: #008000; + --nt-color-39: #FFE4E1; + --nt-color-40: #FFFF00; + --nt-color-41: #FFFAF0; + --nt-color-42: #DCDCDC; + --nt-color-43: #ADFF2F; + --nt-color-44: #ADD8E6; + --nt-color-45: #8B008B; + --nt-color-46: #7FFF00; + --nt-color-47: #800000; + --nt-color-48: #20B2AA; + --nt-color-49: #556B2F; + --nt-color-50: #778899; + --nt-color-51: #E6E6FA; + --nt-color-52: #FFFAFA; + --nt-color-53: #FF7F50; + --nt-color-54: #FF0000; + --nt-color-55: #F5DEB3; + --nt-color-56: #008B8B; + --nt-color-57: #66CDAA; + --nt-color-58: #808000; + --nt-color-59: #FAF0E6; + --nt-color-60: #00BFFF; + --nt-color-61: #C71585; + --nt-color-62: #00FFFF; + --nt-color-63: #8B4513; + --nt-color-64: #F0F8FF; + --nt-color-65: #FAEBD7; + --nt-color-66: #8B0000; + --nt-color-67: #4682B4; + --nt-color-68: #F0E68C; + --nt-color-69: #BDB76B; + --nt-color-70: #A0522D; + --nt-color-71: #FAFAD2; + --nt-color-72: #FFD700; + --nt-color-73: #DEB887; + --nt-color-74: #E0FFFF; + --nt-color-75: #8A2BE2; + --nt-color-76: #32CD32; + --nt-color-77: #87CEFA; + --nt-color-78: #00CED1; + --nt-color-79: #696969; + --nt-color-80: #DDA0DD; + --nt-color-81: #EE82EE; + --nt-color-82: #FFB6C1; + --nt-color-83: #8FBC8F; + --nt-color-84: #D8BFD8; + --nt-color-85: #9400D3; + --nt-color-86: #A9A9A9; + --nt-color-87: #FFFFE0; + --nt-color-88: #FFF5EE; + --nt-color-89: #FFF0F5; + --nt-color-90: #FFDEAD; + --nt-color-91: #800080; + --nt-color-92: #B0E0E6; + --nt-color-93: #9932CC; + --nt-color-94: #DAA520; + --nt-color-95: #F0FFFF; + --nt-color-96: #40E0D0; + --nt-color-97: #00FF7F; + --nt-color-98: #006400; + --nt-color-99: #808080; + --nt-color-100: #87CEEB; + --nt-color-101: #0000FF; + --nt-color-102: #6495ED; + --nt-color-103: #FDF5E6; + --nt-color-104: #B8860B; + --nt-color-105: #BA55D3; + --nt-color-106: #C0C0C0; + --nt-color-107: #000000; + --nt-color-108: #F08080; + --nt-color-109: #B0C4DE; + --nt-color-110: #00008B; + --nt-color-111: #6B8E23; + --nt-color-112: #FFE4B5; + --nt-color-113: #FFA07A; + --nt-color-114: #9ACD32; + --nt-color-115: #FFFFFF; + --nt-color-116: #F5F5DC; + --nt-color-117: #90EE90; + --nt-color-118: #1E90FF; + --nt-color-119: #7CFC00; + --nt-color-120: #FF69B4; + --nt-color-121: #F8F8FF; + --nt-color-122: #F5FFFA; + --nt-color-123: #00FF00; + --nt-color-124: #D3D3D3; + --nt-color-125: #DB7093; + --nt-color-126: #DA70D6; + --nt-color-127: #FF1493; + --nt-color-128: #228B22; + --nt-color-129: #FFEFD5; + --nt-color-130: #4169E1; + --nt-color-131: #191970; + --nt-color-132: #9370DB; + --nt-color-133: #483D8B; + --nt-color-134: #FF8C00; + --nt-color-135: #EEE8AA; + --nt-color-136: #CD5C5C; + --nt-color-137: #DC143C; +} + +:root { + --nt-group-0-main: #000000; + --nt-group-0-dark: #FFFFFF; + --nt-group-0-light: #000000; + --nt-group-0-main-bg: #F44336; + --nt-group-0-dark-bg: #BA000D; + --nt-group-0-light-bg: #FF7961; + --nt-group-1-main: #000000; + --nt-group-1-dark: #FFFFFF; + --nt-group-1-light: #000000; + --nt-group-1-main-bg: #E91E63; + --nt-group-1-dark-bg: #B0003A; + --nt-group-1-light-bg: #FF6090; + --nt-group-2-main: #FFFFFF; + --nt-group-2-dark: #FFFFFF; + --nt-group-2-light: #000000; + --nt-group-2-main-bg: #9C27B0; + --nt-group-2-dark-bg: #6A0080; + --nt-group-2-light-bg: #D05CE3; + --nt-group-3-main: #FFFFFF; + --nt-group-3-dark: #FFFFFF; + --nt-group-3-light: #000000; + --nt-group-3-main-bg: #673AB7; + --nt-group-3-dark-bg: #320B86; + --nt-group-3-light-bg: #9A67EA; + --nt-group-4-main: #FFFFFF; + --nt-group-4-dark: #FFFFFF; + --nt-group-4-light: #000000; + --nt-group-4-main-bg: #3F51B5; + --nt-group-4-dark-bg: #002984; + --nt-group-4-light-bg: #757DE8; + --nt-group-5-main: #000000; + --nt-group-5-dark: #FFFFFF; + --nt-group-5-light: #000000; + --nt-group-5-main-bg: #2196F3; + --nt-group-5-dark-bg: #0069C0; + --nt-group-5-light-bg: #6EC6FF; + --nt-group-6-main: #000000; + --nt-group-6-dark: #FFFFFF; + --nt-group-6-light: #000000; + --nt-group-6-main-bg: #03A9F4; + --nt-group-6-dark-bg: #007AC1; + --nt-group-6-light-bg: #67DAFF; + --nt-group-7-main: #000000; + --nt-group-7-dark: #000000; + --nt-group-7-light: #000000; + --nt-group-7-main-bg: #00BCD4; + --nt-group-7-dark-bg: #008BA3; + --nt-group-7-light-bg: #62EFFF; + --nt-group-8-main: #000000; + --nt-group-8-dark: #FFFFFF; + --nt-group-8-light: #000000; + --nt-group-8-main-bg: #009688; + --nt-group-8-dark-bg: #00675B; + --nt-group-8-light-bg: #52C7B8; + --nt-group-9-main: #000000; + --nt-group-9-dark: #FFFFFF; + --nt-group-9-light: #000000; + --nt-group-9-main-bg: #4CAF50; + --nt-group-9-dark-bg: #087F23; + --nt-group-9-light-bg: #80E27E; + --nt-group-10-main: #000000; + --nt-group-10-dark: #000000; + --nt-group-10-light: #000000; + --nt-group-10-main-bg: #8BC34A; + --nt-group-10-dark-bg: #5A9216; + --nt-group-10-light-bg: #BEF67A; + --nt-group-11-main: #000000; + --nt-group-11-dark: #000000; + --nt-group-11-light: #000000; + --nt-group-11-main-bg: #CDDC39; + --nt-group-11-dark-bg: #99AA00; + --nt-group-11-light-bg: #FFFF6E; + --nt-group-12-main: #000000; + --nt-group-12-dark: #000000; + --nt-group-12-light: #000000; + --nt-group-12-main-bg: #FFEB3B; + --nt-group-12-dark-bg: #C8B900; + --nt-group-12-light-bg: #FFFF72; + --nt-group-13-main: #000000; + --nt-group-13-dark: #000000; + --nt-group-13-light: #000000; + --nt-group-13-main-bg: #FFC107; + --nt-group-13-dark-bg: #C79100; + --nt-group-13-light-bg: #FFF350; + --nt-group-14-main: #000000; + --nt-group-14-dark: #000000; + --nt-group-14-light: #000000; + --nt-group-14-main-bg: #FF9800; + --nt-group-14-dark-bg: #C66900; + --nt-group-14-light-bg: #FFC947; + --nt-group-15-main: #000000; + --nt-group-15-dark: #FFFFFF; + --nt-group-15-light: #000000; + --nt-group-15-main-bg: #FF5722; + --nt-group-15-dark-bg: #C41C00; + --nt-group-15-light-bg: #FF8A50; + --nt-group-16-main: #FFFFFF; + --nt-group-16-dark: #FFFFFF; + --nt-group-16-light: #000000; + --nt-group-16-main-bg: #795548; + --nt-group-16-dark-bg: #4B2C20; + --nt-group-16-light-bg: #A98274; + --nt-group-17-main: #000000; + --nt-group-17-dark: #FFFFFF; + --nt-group-17-light: #000000; + --nt-group-17-main-bg: #9E9E9E; + --nt-group-17-dark-bg: #707070; + --nt-group-17-light-bg: #CFCFCF; + --nt-group-18-main: #000000; + --nt-group-18-dark: #FFFFFF; + --nt-group-18-light: #000000; + --nt-group-18-main-bg: #607D8B; + --nt-group-18-dark-bg: #34515E; + --nt-group-18-light-bg: #8EACBB; +} + +.nt-pastello { + --nt-group-0-main: #000000; + --nt-group-0-dark: #000000; + --nt-group-0-light: #000000; + --nt-group-0-main-bg: #EF9A9A; + --nt-group-0-dark-bg: #BA6B6C; + --nt-group-0-light-bg: #FFCCCB; + --nt-group-1-main: #000000; + --nt-group-1-dark: #000000; + --nt-group-1-light: #000000; + --nt-group-1-main-bg: #F48FB1; + --nt-group-1-dark-bg: #BF5F82; + --nt-group-1-light-bg: #FFC1E3; + --nt-group-2-main: #000000; + --nt-group-2-dark: #000000; + --nt-group-2-light: #000000; + --nt-group-2-main-bg: #CE93D8; + --nt-group-2-dark-bg: #9C64A6; + --nt-group-2-light-bg: #FFC4FF; + --nt-group-3-main: #000000; + --nt-group-3-dark: #000000; + --nt-group-3-light: #000000; + --nt-group-3-main-bg: #B39DDB; + --nt-group-3-dark-bg: #836FA9; + --nt-group-3-light-bg: #E6CEFF; + --nt-group-4-main: #000000; + --nt-group-4-dark: #000000; + --nt-group-4-light: #000000; + --nt-group-4-main-bg: #9FA8DA; + --nt-group-4-dark-bg: #6F79A8; + --nt-group-4-light-bg: #D1D9FF; + --nt-group-5-main: #000000; + --nt-group-5-dark: #000000; + --nt-group-5-light: #000000; + --nt-group-5-main-bg: #90CAF9; + --nt-group-5-dark-bg: #5D99C6; + --nt-group-5-light-bg: #C3FDFF; + --nt-group-6-main: #000000; + --nt-group-6-dark: #000000; + --nt-group-6-light: #000000; + --nt-group-6-main-bg: #81D4FA; + --nt-group-6-dark-bg: #4BA3C7; + --nt-group-6-light-bg: #B6FFFF; + --nt-group-7-main: #000000; + --nt-group-7-dark: #000000; + --nt-group-7-light: #000000; + --nt-group-7-main-bg: #80DEEA; + --nt-group-7-dark-bg: #4BACB8; + --nt-group-7-light-bg: #B4FFFF; + --nt-group-8-main: #000000; + --nt-group-8-dark: #000000; + --nt-group-8-light: #000000; + --nt-group-8-main-bg: #80CBC4; + --nt-group-8-dark-bg: #4F9A94; + --nt-group-8-light-bg: #B2FEF7; + --nt-group-9-main: #000000; + --nt-group-9-dark: #000000; + --nt-group-9-light: #000000; + --nt-group-9-main-bg: #A5D6A7; + --nt-group-9-dark-bg: #75A478; + --nt-group-9-light-bg: #D7FFD9; + --nt-group-10-main: #000000; + --nt-group-10-dark: #000000; + --nt-group-10-light: #000000; + --nt-group-10-main-bg: #C5E1A5; + --nt-group-10-dark-bg: #94AF76; + --nt-group-10-light-bg: #F8FFD7; + --nt-group-11-main: #000000; + --nt-group-11-dark: #000000; + --nt-group-11-light: #000000; + --nt-group-11-main-bg: #E6EE9C; + --nt-group-11-dark-bg: #B3BC6D; + --nt-group-11-light-bg: #FFFFCE; + --nt-group-12-main: #000000; + --nt-group-12-dark: #000000; + --nt-group-12-light: #000000; + --nt-group-12-main-bg: #FFF59D; + --nt-group-12-dark-bg: #CBC26D; + --nt-group-12-light-bg: #FFFFCF; + --nt-group-13-main: #000000; + --nt-group-13-dark: #000000; + --nt-group-13-light: #000000; + --nt-group-13-main-bg: #FFE082; + --nt-group-13-dark-bg: #CAAE53; + --nt-group-13-light-bg: #FFFFB3; + --nt-group-14-main: #000000; + --nt-group-14-dark: #000000; + --nt-group-14-light: #000000; + --nt-group-14-main-bg: #FFCC80; + --nt-group-14-dark-bg: #CA9B52; + --nt-group-14-light-bg: #FFFFB0; + --nt-group-15-main: #000000; + --nt-group-15-dark: #000000; + --nt-group-15-light: #000000; + --nt-group-15-main-bg: #FFAB91; + --nt-group-15-dark-bg: #C97B63; + --nt-group-15-light-bg: #FFDDC1; + --nt-group-16-main: #000000; + --nt-group-16-dark: #000000; + --nt-group-16-light: #000000; + --nt-group-16-main-bg: #BCAAA4; + --nt-group-16-dark-bg: #8C7B75; + --nt-group-16-light-bg: #EFDCD5; + --nt-group-17-main: #000000; + --nt-group-17-dark: #000000; + --nt-group-17-light: #000000; + --nt-group-17-main-bg: #EEEEEE; + --nt-group-17-dark-bg: #BCBCBC; + --nt-group-17-light-bg: #FFFFFF; + --nt-group-18-main: #000000; + --nt-group-18-dark: #000000; + --nt-group-18-light: #000000; + --nt-group-18-main-bg: #B0BEC5; + --nt-group-18-dark-bg: #808E95; + --nt-group-18-light-bg: #E2F1F8; +} + +.nt-group-0 .nt-plan-group-summary, +.nt-group-0 .nt-timeline-dot { + color: var(--nt-group-0-dark); + background-color: var(--nt-group-0-dark-bg); +} +.nt-group-0 .period { + color: var(--nt-group-0-main); + background-color: var(--nt-group-0-main-bg); +} + +.nt-group-1 .nt-plan-group-summary, +.nt-group-1 .nt-timeline-dot { + color: var(--nt-group-1-dark); + background-color: var(--nt-group-1-dark-bg); +} +.nt-group-1 .period { + color: var(--nt-group-1-main); + background-color: var(--nt-group-1-main-bg); +} + +.nt-group-2 .nt-plan-group-summary, +.nt-group-2 .nt-timeline-dot { + color: var(--nt-group-2-dark); + background-color: var(--nt-group-2-dark-bg); +} +.nt-group-2 .period { + color: var(--nt-group-2-main); + background-color: var(--nt-group-2-main-bg); +} + +.nt-group-3 .nt-plan-group-summary, +.nt-group-3 .nt-timeline-dot { + color: var(--nt-group-3-dark); + background-color: var(--nt-group-3-dark-bg); +} +.nt-group-3 .period { + color: var(--nt-group-3-main); + background-color: var(--nt-group-3-main-bg); +} + +.nt-group-4 .nt-plan-group-summary, +.nt-group-4 .nt-timeline-dot { + color: var(--nt-group-4-dark); + background-color: var(--nt-group-4-dark-bg); +} +.nt-group-4 .period { + color: var(--nt-group-4-main); + background-color: var(--nt-group-4-main-bg); +} + +.nt-group-5 .nt-plan-group-summary, +.nt-group-5 .nt-timeline-dot { + color: var(--nt-group-5-dark); + background-color: var(--nt-group-5-dark-bg); +} +.nt-group-5 .period { + color: var(--nt-group-5-main); + background-color: var(--nt-group-5-main-bg); +} + +.nt-group-6 .nt-plan-group-summary, +.nt-group-6 .nt-timeline-dot { + color: var(--nt-group-6-dark); + background-color: var(--nt-group-6-dark-bg); +} +.nt-group-6 .period { + color: var(--nt-group-6-main); + background-color: var(--nt-group-6-main-bg); +} + +.nt-group-7 .nt-plan-group-summary, +.nt-group-7 .nt-timeline-dot { + color: var(--nt-group-7-dark); + background-color: var(--nt-group-7-dark-bg); +} +.nt-group-7 .period { + color: var(--nt-group-7-main); + background-color: var(--nt-group-7-main-bg); +} + +.nt-group-8 .nt-plan-group-summary, +.nt-group-8 .nt-timeline-dot { + color: var(--nt-group-8-dark); + background-color: var(--nt-group-8-dark-bg); +} +.nt-group-8 .period { + color: var(--nt-group-8-main); + background-color: var(--nt-group-8-main-bg); +} + +.nt-group-9 .nt-plan-group-summary, +.nt-group-9 .nt-timeline-dot { + color: var(--nt-group-9-dark); + background-color: var(--nt-group-9-dark-bg); +} +.nt-group-9 .period { + color: var(--nt-group-9-main); + background-color: var(--nt-group-9-main-bg); +} + +.nt-group-10 .nt-plan-group-summary, +.nt-group-10 .nt-timeline-dot { + color: var(--nt-group-10-dark); + background-color: var(--nt-group-10-dark-bg); +} +.nt-group-10 .period { + color: var(--nt-group-10-main); + background-color: var(--nt-group-10-main-bg); +} + +.nt-group-11 .nt-plan-group-summary, +.nt-group-11 .nt-timeline-dot { + color: var(--nt-group-11-dark); + background-color: var(--nt-group-11-dark-bg); +} +.nt-group-11 .period { + color: var(--nt-group-11-main); + background-color: var(--nt-group-11-main-bg); +} + +.nt-group-12 .nt-plan-group-summary, +.nt-group-12 .nt-timeline-dot { + color: var(--nt-group-12-dark); + background-color: var(--nt-group-12-dark-bg); +} +.nt-group-12 .period { + color: var(--nt-group-12-main); + background-color: var(--nt-group-12-main-bg); +} + +.nt-group-13 .nt-plan-group-summary, +.nt-group-13 .nt-timeline-dot { + color: var(--nt-group-13-dark); + background-color: var(--nt-group-13-dark-bg); +} +.nt-group-13 .period { + color: var(--nt-group-13-main); + background-color: var(--nt-group-13-main-bg); +} + +.nt-group-14 .nt-plan-group-summary, +.nt-group-14 .nt-timeline-dot { + color: var(--nt-group-14-dark); + background-color: var(--nt-group-14-dark-bg); +} +.nt-group-14 .period { + color: var(--nt-group-14-main); + background-color: var(--nt-group-14-main-bg); +} + +.nt-group-15 .nt-plan-group-summary, +.nt-group-15 .nt-timeline-dot { + color: var(--nt-group-15-dark); + background-color: var(--nt-group-15-dark-bg); +} +.nt-group-15 .period { + color: var(--nt-group-15-main); + background-color: var(--nt-group-15-main-bg); +} + +.nt-group-16 .nt-plan-group-summary, +.nt-group-16 .nt-timeline-dot { + color: var(--nt-group-16-dark); + background-color: var(--nt-group-16-dark-bg); +} +.nt-group-16 .period { + color: var(--nt-group-16-main); + background-color: var(--nt-group-16-main-bg); +} + +.nt-group-17 .nt-plan-group-summary, +.nt-group-17 .nt-timeline-dot { + color: var(--nt-group-17-dark); + background-color: var(--nt-group-17-dark-bg); +} +.nt-group-17 .period { + color: var(--nt-group-17-main); + background-color: var(--nt-group-17-main-bg); +} + +.nt-group-18 .nt-plan-group-summary, +.nt-group-18 .nt-timeline-dot { + color: var(--nt-group-18-dark); + background-color: var(--nt-group-18-dark-bg); +} +.nt-group-18 .period { + color: var(--nt-group-18-main); + background-color: var(--nt-group-18-main-bg); +} + +/** + * Extra CSS file for MkDocs and the neoteroi.timeline extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +.nt-error { + border: 2px dashed darkred; + padding: 0 1rem; + background: #faf9ba; + color: darkred; +} + +.nt-timeline { + margin-top: 30px; +} +.nt-timeline .nt-timeline-title { + font-size: 1.1rem; + margin-top: 0; +} +.nt-timeline .nt-timeline-sub-title { + margin-top: 0; +} +.nt-timeline .nt-timeline-content { + font-size: 0.8rem; + border-bottom: 2px dashed #ccc; + padding-bottom: 1.2rem; +} +.nt-timeline.horizontal .nt-timeline-items { + flex-direction: row; + overflow-x: scroll; +} +.nt-timeline.horizontal .nt-timeline-items > div { + min-width: 400px; + margin-right: 50px; +} +.nt-timeline.horizontal.reverse .nt-timeline-items { + flex-direction: row-reverse; +} +.nt-timeline.horizontal.center .nt-timeline-before { + background-image: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal.center .nt-timeline-after { + background-image: linear-gradient(180deg, rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal.center .nt-timeline-items { + background-image: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal .nt-timeline-dot { + left: 50%; +} +.nt-timeline.horizontal .nt-timeline-dot:not(.bigger) { + top: calc(50% - 4px); +} +.nt-timeline.horizontal .nt-timeline-dot.bigger { + top: calc(50% - 15px); +} +.nt-timeline.vertical .nt-timeline-items { + flex-direction: column; +} +.nt-timeline.vertical.reverse .nt-timeline-items { + flex-direction: column-reverse; +} +.nt-timeline.vertical.center .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-dot { + left: calc(50% - 10px); +} +.nt-timeline.vertical.center .nt-timeline-dot:not(.bigger) { + top: 10px; +} +.nt-timeline.vertical.center .nt-timeline-dot.bigger { + left: calc(50% - 20px); +} +.nt-timeline.vertical.left { + padding-left: 100px; +} +.nt-timeline.vertical.left .nt-timeline-item { + padding-left: 70px; +} +.nt-timeline.vertical.left .nt-timeline-sub-title { + left: -100px; + width: 100px; +} +.nt-timeline.vertical.left .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-dot { + left: 21px; + top: 8px; +} +.nt-timeline.vertical.left .nt-timeline-dot.bigger { + top: 0px; + left: 10px; +} +.nt-timeline.vertical.right { + padding-right: 100px; +} +.nt-timeline.vertical.right .nt-timeline-sub-title { + right: -100px; + text-align: left; + width: 100px; +} +.nt-timeline.vertical.right .nt-timeline-item { + padding-right: 70px; +} +.nt-timeline.vertical.right .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-dot { + right: 21px; + top: 8px; +} +.nt-timeline.vertical.right .nt-timeline-dot.bigger { + top: 10px; + right: 10px; +} + +.nt-timeline-items { + display: flex; + position: relative; +} +.nt-timeline-items > div { + min-height: 100px; + padding-top: 2px; + padding-bottom: 20px; +} + +.nt-timeline-before { + content: ""; + height: 15px; +} + +.nt-timeline-after { + content: ""; + height: 60px; + margin-bottom: 20px; +} + +.nt-timeline-sub-title { + position: absolute; + width: 50%; + top: 4px; + font-size: 18px; + color: var(--nt-color-50); +} + +[data-md-color-scheme=slate] .nt-timeline-sub-title { + color: var(--nt-color-51); +} + +.nt-timeline-item { + position: relative; +} + +.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item { + padding-left: calc(50% + 40px); +} +.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title { + left: 0; + padding-right: 40px; + text-align: right; +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) { + padding-left: calc(50% + 40px); +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title { + left: 0; + padding-right: 40px; + text-align: right; +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) { + text-align: right; + padding-right: calc(50% + 40px); +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title { + right: 0; + padding-left: 40px; + text-align: left; +} + +.nt-timeline-dot { + position: relative; + width: 20px; + height: 20px; + border-radius: 100%; + background-color: #fc5b5b; + position: absolute; + top: 0px; + z-index: 2; + display: flex; + justify-content: center; + align-items: center; + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); + border: 3px solid white; +} +.nt-timeline-dot:not(.bigger) .icon { + font-size: 10px; +} +.nt-timeline-dot.bigger { + width: 40px; + height: 40px; + padding: 3px; +} +.nt-timeline-dot .icon { + color: white; +} + +/* Fix for webkit (Chrome, Safari) */ +@supports not (-moz-appearance: none) { + /* + This fix is necessary, for some reason, to render the timeline properly + inside `details` elements used by pymdownx. Firefox doesn't need this fix, + it renders elements properly. + */ + details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title, +details .nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title { + left: -40px; + } + details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title { + right: -40px; + } + details .nt-timeline.vertical.center .nt-timeline-dot { + left: calc(50% - 12px); + } + details .nt-timeline-dot.bigger { + font-size: 1rem !important; + } +} +/* default colors */ +.nt-timeline-item:nth-child(0) .nt-timeline-dot { + background-color: var(--nt-color-0); +} + +.nt-timeline-item:nth-child(1) .nt-timeline-dot { + background-color: var(--nt-color-1); +} + +.nt-timeline-item:nth-child(2) .nt-timeline-dot { + background-color: var(--nt-color-2); +} + +.nt-timeline-item:nth-child(3) .nt-timeline-dot { + background-color: var(--nt-color-3); +} + +.nt-timeline-item:nth-child(4) .nt-timeline-dot { + background-color: var(--nt-color-4); +} + +.nt-timeline-item:nth-child(5) .nt-timeline-dot { + background-color: var(--nt-color-5); +} + +.nt-timeline-item:nth-child(6) .nt-timeline-dot { + background-color: var(--nt-color-6); +} + +.nt-timeline-item:nth-child(7) .nt-timeline-dot { + background-color: var(--nt-color-7); +} + +.nt-timeline-item:nth-child(8) .nt-timeline-dot { + background-color: var(--nt-color-8); +} + +.nt-timeline-item:nth-child(9) .nt-timeline-dot { + background-color: var(--nt-color-9); +} + +.nt-timeline-item:nth-child(10) .nt-timeline-dot { + background-color: var(--nt-color-10); +} + +.nt-timeline-item:nth-child(11) .nt-timeline-dot { + background-color: var(--nt-color-11); +} + +.nt-timeline-item:nth-child(12) .nt-timeline-dot { + background-color: var(--nt-color-12); +} + +.nt-timeline-item:nth-child(13) .nt-timeline-dot { + background-color: var(--nt-color-13); +} + +.nt-timeline-item:nth-child(14) .nt-timeline-dot { + background-color: var(--nt-color-14); +} + +.nt-timeline-item:nth-child(15) .nt-timeline-dot { + background-color: var(--nt-color-15); +} + +.nt-timeline-item:nth-child(16) .nt-timeline-dot { + background-color: var(--nt-color-16); +} + +.nt-timeline-item:nth-child(17) .nt-timeline-dot { + background-color: var(--nt-color-17); +} + +.nt-timeline-item:nth-child(18) .nt-timeline-dot { + background-color: var(--nt-color-18); +} + +.nt-timeline-item:nth-child(19) .nt-timeline-dot { + background-color: var(--nt-color-19); +} + +.nt-timeline-item:nth-child(20) .nt-timeline-dot { + background-color: var(--nt-color-20); +} + +/** + * Extra CSS for the neoteroi.projects.gantt extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +:root { + --nt-scrollbar-color: #2751b0; + --nt-plan-actions-height: 24px; + --nt-units-background: #ff9800; + --nt-months-background: #2751b0; + --nt-plan-vertical-line-color: #a3a3a3ad; +} + +.nt-pastello { + --nt-scrollbar-color: #9fb8f4; + --nt-units-background: #f5dc82; + --nt-months-background: #5b7fd1; +} + +[data-md-color-scheme=slate] { + --nt-units-background: #003773; +} +[data-md-color-scheme=slate] .nt-pastello { + --nt-units-background: #3f4997; +} + +.nt-plan-root { + min-height: 200px; + scrollbar-width: 20px; + scrollbar-color: var(--nt-scrollbar-color); + display: flex; +} +.nt-plan-root ::-webkit-scrollbar { + width: 20px; +} +.nt-plan-root ::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px grey; + border-radius: 10px; +} +.nt-plan-root ::-webkit-scrollbar-thumb { + background: var(--nt-scrollbar-color); + border-radius: 10px; +} +.nt-plan-root .nt-plan { + flex: 80%; +} +.nt-plan-root.no-groups .nt-plan-periods { + padding-left: 0; +} +.nt-plan-root.no-groups .nt-plan-group-summary { + display: none; +} +.nt-plan-root .nt-timeline-dot.bigger { + top: -10px; +} +.nt-plan-root .nt-timeline-dot.bigger[title] { + cursor: help; +} + +.nt-plan { + white-space: nowrap; + overflow-x: auto; + display: flex; +} +.nt-plan .ug-timeline-dot { + left: 368px; + top: -8px; + cursor: help; +} + +.months { + display: flex; +} + +.month { + flex: auto; + display: inline-block; + box-shadow: rgba(0, 0, 0, 0.2) 0px 3px 1px -2px, rgba(0, 0, 0, 0.14) 0px 2px 2px 0px, rgba(0, 0, 0, 0.12) 0px 1px 5px 0px inset; + background-color: var(--nt-months-background); + color: white; + text-transform: uppercase; + font-family: Roboto, Helvetica, Arial, sans-serif; + padding: 2px 5px; + font-size: 12px; + border: 1px solid #000; + width: 150px; + border-radius: 8px; +} + +.nt-plan-group-activities { + flex: auto; + position: relative; +} + +.nt-vline { + border-left: 1px dashed var(--nt-plan-vertical-line-color); + height: 100%; + left: 0; + position: absolute; + margin-left: -0.5px; + top: 0; + -webkit-transition: all 0.5s linear !important; + -moz-transition: all 0.5s linear !important; + -ms-transition: all 0.5s linear !important; + -o-transition: all 0.5s linear !important; + transition: all 0.5s linear !important; + z-index: -2; +} + +.nt-plan-activity { + display: flex; + margin: 2px 0; + background-color: rgba(187, 187, 187, 0.2509803922); +} + +.actions { + height: var(--nt-plan-actions-height); +} + +.actions { + position: relative; +} + +.period { + display: inline-block; + height: var(--nt-plan-actions-height); + width: 120px; + position: absolute; + left: 0px; + background: #1da1f2; + border-radius: 5px; + transition: all 0.5s; + cursor: help; + -webkit-transition: width 1s ease-in-out; + -moz-transition: width 1s ease-in-out; + -o-transition: width 1s ease-in-out; + transition: width 1s ease-in-out; +} +.period .nt-tooltip { + display: none; + top: 30px; + position: relative; + padding: 1rem; + text-align: center; + font-size: 12px; +} +.period:hover .nt-tooltip { + display: inline-block; +} + +.period-0 { + left: 340px; + visibility: visible; + background-color: rgb(69, 97, 101); +} + +.period-1 { + left: 40px; + visibility: visible; + background-color: green; +} + +.period-2 { + left: 120px; + visibility: visible; + background-color: pink; + width: 80px; +} + +.period-3 { + left: 190px; + visibility: visible; + background-color: darkred; + width: 150px; +} + +.weeks > span, +.days > span { + height: 25px; +} + +.weeks > span { + display: inline-block; + margin: 0; + padding: 0; + font-weight: bold; +} +.weeks > span .week-text { + font-size: 10px; + position: absolute; + display: inline-block; + padding: 3px 4px; +} + +.days { + z-index: -2; + position: relative; +} + +.day-text { + font-size: 10px; + position: absolute; + display: inline-block; + padding: 3px 4px; +} + +.period span { + font-size: 12px; + vertical-align: top; + margin-left: 4px; + color: black; + background: rgba(255, 255, 255, 0.6588235294); + border-radius: 6px; + padding: 0 4px; +} + +.weeks, +.days { + height: 20px; + display: flex; + box-sizing: content-box; +} + +.months { + display: flex; +} + +.week, +.day { + height: 20px; + position: relative; + border: 1; + flex: auto; + border: 2px solid white; + border-radius: 4px; + background-color: var(--nt-units-background); + cursor: help; +} + +.years { + display: flex; +} + +.year { + text-align: center; + border-right: 1px solid var(--nt-plan-vertical-line-color); + font-weight: bold; +} +.year:first-child { + border-left: 1px solid var(--nt-plan-vertical-line-color); +} +.year:first-child:last-child { + width: 100%; +} + +.quarters { + display: flex; +} + +.quarter { + width: 12.5%; + text-align: center; + border-right: 1px solid var(--nt-plan-vertical-line-color); + font-weight: bold; +} +.quarter:first-child { + border-left: 1px solid var(--nt-plan-vertical-line-color); +} + +.nt-plan-group { + margin: 20px 0; + position: relative; +} + +.nt-plan-group { + display: flex; +} + +.nt-plan-group-summary { + background: #2751b0; + width: 150px; + white-space: normal; + padding: 0.1rem 0.5rem; + border-radius: 5px; + color: #fff; + z-index: 3; +} +.nt-plan-group-summary p { + margin: 0; + padding: 0; + font-size: 0.6rem; + color: #fff; +} + +.nt-plan-group-summary, +.month, +.period, +.week, +.day, +.nt-tooltip { + border: 3px solid white; + box-shadow: 0 2px 3px -1px rgba(0, 0, 0, 0.2), 0 3px 3px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} + +.nt-plan-periods { + padding-left: 150px; +} + +.months { + z-index: 2; + position: relative; +} + +.weeks { + position: relative; + top: -2px; + z-index: 0; +} + +.month, +.quarter, +.year, +.week, +.day, +.nt-tooltip { + font-family: Roboto, Helvetica, Arial, sans-serif; + box-sizing: border-box; +} + +.nt-cards.nt-grid { + display: grid; + grid-auto-columns: 1fr; + gap: 0.5rem; + max-width: 100vw; + overflow-x: auto; + padding: 1px; +} +.nt-cards.nt-grid.cols-1 { + grid-template-columns: repeat(1, 1fr); +} +.nt-cards.nt-grid.cols-2 { + grid-template-columns: repeat(2, 1fr); +} +.nt-cards.nt-grid.cols-3 { + grid-template-columns: repeat(3, 1fr); +} +.nt-cards.nt-grid.cols-4 { + grid-template-columns: repeat(4, 1fr); +} +.nt-cards.nt-grid.cols-5 { + grid-template-columns: repeat(5, 1fr); +} +.nt-cards.nt-grid.cols-6 { + grid-template-columns: repeat(6, 1fr); +} + +@media only screen and (max-width: 400px) { + .nt-cards.nt-grid { + grid-template-columns: repeat(1, 1fr) !important; + } +} +.nt-card { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.nt-card:hover { + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.24), 0 3px 1px -2px rgba(0, 0, 0, 0.3), 0 1px 5px 0 rgba(0, 0, 0, 0.22); +} + +[data-md-color-scheme=slate] .nt-card { + box-shadow: 0 2px 2px 0 rgba(4, 40, 33, 0.14), 0 3px 1px -2px rgba(40, 86, 94, 0.47), 0 1px 5px 0 rgba(139, 252, 255, 0.64); +} +[data-md-color-scheme=slate] .nt-card:hover { + box-shadow: 0 2px 2px 0 rgba(0, 255, 206, 0.14), 0 3px 1px -2px rgba(33, 156, 177, 0.47), 0 1px 5px 0 rgba(96, 251, 255, 0.64); +} + +.nt-card > a { + color: var(--md-default-fg-color); +} + +.nt-card > a > div { + cursor: pointer; +} + +.nt-card { + padding: 5px; + margin-bottom: 0.5rem; +} + +.nt-card-title { + font-size: 1rem; + font-weight: bold; + margin: 4px 0 8px 0; + line-height: 22px; +} + +.nt-card-content { + padding: 0.4rem 0.8rem 0.8rem 0.8rem; +} + +.nt-card-text { + font-size: 14px; + padding: 0; + margin: 0; +} + +.nt-card .nt-card-image { + text-align: center; + border-radius: 2px; + background-position: center center; + background-size: cover; + background-repeat: no-repeat; + min-height: 120px; +} + +.nt-card .nt-card-image.tags img { + margin-top: 12px; +} + +.nt-card .nt-card-image img { + height: 105px; + margin-top: 5px; +} + +.nt-card a:hover, +.nt-card a:focus { + color: var(--md-accent-fg-color); +} + +.nt-card h2 { + margin: 0; +} + +/** + * Extra CSS file recommended for MkDocs and neoteroi.spantable extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +.span-table-wrapper table { + border-collapse: collapse; + margin-bottom: 2rem; + border-radius: 0.1rem; +} + +.span-table td, +.span-table th { + padding: 0.2rem; + background-color: var(--md-default-bg-color); + font-size: 0.64rem; + max-width: 100%; + overflow: auto; + touch-action: auto; + border-top: 0.05rem solid var(--md-typeset-table-color); + padding: 0.9375em 1.25em; + vertical-align: top; +} + +.span-table tr:first-child td { + font-weight: 700; + min-width: 5rem; + padding: 0.9375em 1.25em; + vertical-align: top; +} + +.span-table td:first-child { + border-left: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table td:last-child { + border-right: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table tr:last-child { + border-bottom: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table [colspan], +.span-table [rowspan] { + font-weight: bold; + border: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table tr:not(:first-child):hover td:not([colspan]):not([rowspan]), +.span-table td[colspan]:hover, +.span-table td[rowspan]:hover { + background-color: rgba(0, 0, 0, 0.035); + box-shadow: 0 0.05rem 0 var(--md-default-bg-color) inset; + transition: background-color 125ms; +} diff --git a/docs/docs/css/neoteroi-mkdocs.min.css b/docs/docs/css/neoteroi-mkdocs.min.css new file mode 100644 index 0000000..ea55c67 --- /dev/null +++ b/docs/docs/css/neoteroi-mkdocs.min.css @@ -0,0 +1 @@ +:root{--nt-color-0: #CD853F;--nt-color-1: #B22222;--nt-color-2: #000080;--nt-color-3: #4B0082;--nt-color-4: #3CB371;--nt-color-5: #D2B48C;--nt-color-6: #FF00FF;--nt-color-7: #98FB98;--nt-color-8: #FFEBCD;--nt-color-9: #2E8B57;--nt-color-10: #6A5ACD;--nt-color-11: #48D1CC;--nt-color-12: #FFA500;--nt-color-13: #F4A460;--nt-color-14: #A52A2A;--nt-color-15: #FFE4C4;--nt-color-16: #FF4500;--nt-color-17: #AFEEEE;--nt-color-18: #FA8072;--nt-color-19: #2F4F4F;--nt-color-20: #FFDAB9;--nt-color-21: #BC8F8F;--nt-color-22: #FFC0CB;--nt-color-23: #00FA9A;--nt-color-24: #F0FFF0;--nt-color-25: #FFFACD;--nt-color-26: #F5F5F5;--nt-color-27: #FF6347;--nt-color-28: #FFFFF0;--nt-color-29: #7FFFD4;--nt-color-30: #E9967A;--nt-color-31: #7B68EE;--nt-color-32: #FFF8DC;--nt-color-33: #0000CD;--nt-color-34: #D2691E;--nt-color-35: #708090;--nt-color-36: #5F9EA0;--nt-color-37: #008080;--nt-color-38: #008000;--nt-color-39: #FFE4E1;--nt-color-40: #FFFF00;--nt-color-41: #FFFAF0;--nt-color-42: #DCDCDC;--nt-color-43: #ADFF2F;--nt-color-44: #ADD8E6;--nt-color-45: #8B008B;--nt-color-46: #7FFF00;--nt-color-47: #800000;--nt-color-48: #20B2AA;--nt-color-49: #556B2F;--nt-color-50: #778899;--nt-color-51: #E6E6FA;--nt-color-52: #FFFAFA;--nt-color-53: #FF7F50;--nt-color-54: #FF0000;--nt-color-55: #F5DEB3;--nt-color-56: #008B8B;--nt-color-57: #66CDAA;--nt-color-58: #808000;--nt-color-59: #FAF0E6;--nt-color-60: #00BFFF;--nt-color-61: #C71585;--nt-color-62: #00FFFF;--nt-color-63: #8B4513;--nt-color-64: #F0F8FF;--nt-color-65: #FAEBD7;--nt-color-66: #8B0000;--nt-color-67: #4682B4;--nt-color-68: #F0E68C;--nt-color-69: #BDB76B;--nt-color-70: #A0522D;--nt-color-71: #FAFAD2;--nt-color-72: #FFD700;--nt-color-73: #DEB887;--nt-color-74: #E0FFFF;--nt-color-75: #8A2BE2;--nt-color-76: #32CD32;--nt-color-77: #87CEFA;--nt-color-78: #00CED1;--nt-color-79: #696969;--nt-color-80: #DDA0DD;--nt-color-81: #EE82EE;--nt-color-82: #FFB6C1;--nt-color-83: #8FBC8F;--nt-color-84: #D8BFD8;--nt-color-85: #9400D3;--nt-color-86: #A9A9A9;--nt-color-87: #FFFFE0;--nt-color-88: #FFF5EE;--nt-color-89: #FFF0F5;--nt-color-90: #FFDEAD;--nt-color-91: #800080;--nt-color-92: #B0E0E6;--nt-color-93: #9932CC;--nt-color-94: #DAA520;--nt-color-95: #F0FFFF;--nt-color-96: #40E0D0;--nt-color-97: #00FF7F;--nt-color-98: #006400;--nt-color-99: #808080;--nt-color-100: #87CEEB;--nt-color-101: #0000FF;--nt-color-102: #6495ED;--nt-color-103: #FDF5E6;--nt-color-104: #B8860B;--nt-color-105: #BA55D3;--nt-color-106: #C0C0C0;--nt-color-107: #000000;--nt-color-108: #F08080;--nt-color-109: #B0C4DE;--nt-color-110: #00008B;--nt-color-111: #6B8E23;--nt-color-112: #FFE4B5;--nt-color-113: #FFA07A;--nt-color-114: #9ACD32;--nt-color-115: #FFFFFF;--nt-color-116: #F5F5DC;--nt-color-117: #90EE90;--nt-color-118: #1E90FF;--nt-color-119: #7CFC00;--nt-color-120: #FF69B4;--nt-color-121: #F8F8FF;--nt-color-122: #F5FFFA;--nt-color-123: #00FF00;--nt-color-124: #D3D3D3;--nt-color-125: #DB7093;--nt-color-126: #DA70D6;--nt-color-127: #FF1493;--nt-color-128: #228B22;--nt-color-129: #FFEFD5;--nt-color-130: #4169E1;--nt-color-131: #191970;--nt-color-132: #9370DB;--nt-color-133: #483D8B;--nt-color-134: #FF8C00;--nt-color-135: #EEE8AA;--nt-color-136: #CD5C5C;--nt-color-137: #DC143C}:root{--nt-group-0-main: #000000;--nt-group-0-dark: #FFFFFF;--nt-group-0-light: #000000;--nt-group-0-main-bg: #F44336;--nt-group-0-dark-bg: #BA000D;--nt-group-0-light-bg: #FF7961;--nt-group-1-main: #000000;--nt-group-1-dark: #FFFFFF;--nt-group-1-light: #000000;--nt-group-1-main-bg: #E91E63;--nt-group-1-dark-bg: #B0003A;--nt-group-1-light-bg: #FF6090;--nt-group-2-main: #FFFFFF;--nt-group-2-dark: #FFFFFF;--nt-group-2-light: #000000;--nt-group-2-main-bg: #9C27B0;--nt-group-2-dark-bg: #6A0080;--nt-group-2-light-bg: #D05CE3;--nt-group-3-main: #FFFFFF;--nt-group-3-dark: #FFFFFF;--nt-group-3-light: #000000;--nt-group-3-main-bg: #673AB7;--nt-group-3-dark-bg: #320B86;--nt-group-3-light-bg: #9A67EA;--nt-group-4-main: #FFFFFF;--nt-group-4-dark: #FFFFFF;--nt-group-4-light: #000000;--nt-group-4-main-bg: #3F51B5;--nt-group-4-dark-bg: #002984;--nt-group-4-light-bg: #757DE8;--nt-group-5-main: #000000;--nt-group-5-dark: #FFFFFF;--nt-group-5-light: #000000;--nt-group-5-main-bg: #2196F3;--nt-group-5-dark-bg: #0069C0;--nt-group-5-light-bg: #6EC6FF;--nt-group-6-main: #000000;--nt-group-6-dark: #FFFFFF;--nt-group-6-light: #000000;--nt-group-6-main-bg: #03A9F4;--nt-group-6-dark-bg: #007AC1;--nt-group-6-light-bg: #67DAFF;--nt-group-7-main: #000000;--nt-group-7-dark: #000000;--nt-group-7-light: #000000;--nt-group-7-main-bg: #00BCD4;--nt-group-7-dark-bg: #008BA3;--nt-group-7-light-bg: #62EFFF;--nt-group-8-main: #000000;--nt-group-8-dark: #FFFFFF;--nt-group-8-light: #000000;--nt-group-8-main-bg: #009688;--nt-group-8-dark-bg: #00675B;--nt-group-8-light-bg: #52C7B8;--nt-group-9-main: #000000;--nt-group-9-dark: #FFFFFF;--nt-group-9-light: #000000;--nt-group-9-main-bg: #4CAF50;--nt-group-9-dark-bg: #087F23;--nt-group-9-light-bg: #80E27E;--nt-group-10-main: #000000;--nt-group-10-dark: #000000;--nt-group-10-light: #000000;--nt-group-10-main-bg: #8BC34A;--nt-group-10-dark-bg: #5A9216;--nt-group-10-light-bg: #BEF67A;--nt-group-11-main: #000000;--nt-group-11-dark: #000000;--nt-group-11-light: #000000;--nt-group-11-main-bg: #CDDC39;--nt-group-11-dark-bg: #99AA00;--nt-group-11-light-bg: #FFFF6E;--nt-group-12-main: #000000;--nt-group-12-dark: #000000;--nt-group-12-light: #000000;--nt-group-12-main-bg: #FFEB3B;--nt-group-12-dark-bg: #C8B900;--nt-group-12-light-bg: #FFFF72;--nt-group-13-main: #000000;--nt-group-13-dark: #000000;--nt-group-13-light: #000000;--nt-group-13-main-bg: #FFC107;--nt-group-13-dark-bg: #C79100;--nt-group-13-light-bg: #FFF350;--nt-group-14-main: #000000;--nt-group-14-dark: #000000;--nt-group-14-light: #000000;--nt-group-14-main-bg: #FF9800;--nt-group-14-dark-bg: #C66900;--nt-group-14-light-bg: #FFC947;--nt-group-15-main: #000000;--nt-group-15-dark: #FFFFFF;--nt-group-15-light: #000000;--nt-group-15-main-bg: #FF5722;--nt-group-15-dark-bg: #C41C00;--nt-group-15-light-bg: #FF8A50;--nt-group-16-main: #FFFFFF;--nt-group-16-dark: #FFFFFF;--nt-group-16-light: #000000;--nt-group-16-main-bg: #795548;--nt-group-16-dark-bg: #4B2C20;--nt-group-16-light-bg: #A98274;--nt-group-17-main: #000000;--nt-group-17-dark: #FFFFFF;--nt-group-17-light: #000000;--nt-group-17-main-bg: #9E9E9E;--nt-group-17-dark-bg: #707070;--nt-group-17-light-bg: #CFCFCF;--nt-group-18-main: #000000;--nt-group-18-dark: #FFFFFF;--nt-group-18-light: #000000;--nt-group-18-main-bg: #607D8B;--nt-group-18-dark-bg: #34515E;--nt-group-18-light-bg: #8EACBB}.nt-pastello{--nt-group-0-main: #000000;--nt-group-0-dark: #000000;--nt-group-0-light: #000000;--nt-group-0-main-bg: #EF9A9A;--nt-group-0-dark-bg: #BA6B6C;--nt-group-0-light-bg: #FFCCCB;--nt-group-1-main: #000000;--nt-group-1-dark: #000000;--nt-group-1-light: #000000;--nt-group-1-main-bg: #F48FB1;--nt-group-1-dark-bg: #BF5F82;--nt-group-1-light-bg: #FFC1E3;--nt-group-2-main: #000000;--nt-group-2-dark: #000000;--nt-group-2-light: #000000;--nt-group-2-main-bg: #CE93D8;--nt-group-2-dark-bg: #9C64A6;--nt-group-2-light-bg: #FFC4FF;--nt-group-3-main: #000000;--nt-group-3-dark: #000000;--nt-group-3-light: #000000;--nt-group-3-main-bg: #B39DDB;--nt-group-3-dark-bg: #836FA9;--nt-group-3-light-bg: #E6CEFF;--nt-group-4-main: #000000;--nt-group-4-dark: #000000;--nt-group-4-light: #000000;--nt-group-4-main-bg: #9FA8DA;--nt-group-4-dark-bg: #6F79A8;--nt-group-4-light-bg: #D1D9FF;--nt-group-5-main: #000000;--nt-group-5-dark: #000000;--nt-group-5-light: #000000;--nt-group-5-main-bg: #90CAF9;--nt-group-5-dark-bg: #5D99C6;--nt-group-5-light-bg: #C3FDFF;--nt-group-6-main: #000000;--nt-group-6-dark: #000000;--nt-group-6-light: #000000;--nt-group-6-main-bg: #81D4FA;--nt-group-6-dark-bg: #4BA3C7;--nt-group-6-light-bg: #B6FFFF;--nt-group-7-main: #000000;--nt-group-7-dark: #000000;--nt-group-7-light: #000000;--nt-group-7-main-bg: #80DEEA;--nt-group-7-dark-bg: #4BACB8;--nt-group-7-light-bg: #B4FFFF;--nt-group-8-main: #000000;--nt-group-8-dark: #000000;--nt-group-8-light: #000000;--nt-group-8-main-bg: #80CBC4;--nt-group-8-dark-bg: #4F9A94;--nt-group-8-light-bg: #B2FEF7;--nt-group-9-main: #000000;--nt-group-9-dark: #000000;--nt-group-9-light: #000000;--nt-group-9-main-bg: #A5D6A7;--nt-group-9-dark-bg: #75A478;--nt-group-9-light-bg: #D7FFD9;--nt-group-10-main: #000000;--nt-group-10-dark: #000000;--nt-group-10-light: #000000;--nt-group-10-main-bg: #C5E1A5;--nt-group-10-dark-bg: #94AF76;--nt-group-10-light-bg: #F8FFD7;--nt-group-11-main: #000000;--nt-group-11-dark: #000000;--nt-group-11-light: #000000;--nt-group-11-main-bg: #E6EE9C;--nt-group-11-dark-bg: #B3BC6D;--nt-group-11-light-bg: #FFFFCE;--nt-group-12-main: #000000;--nt-group-12-dark: #000000;--nt-group-12-light: #000000;--nt-group-12-main-bg: #FFF59D;--nt-group-12-dark-bg: #CBC26D;--nt-group-12-light-bg: #FFFFCF;--nt-group-13-main: #000000;--nt-group-13-dark: #000000;--nt-group-13-light: #000000;--nt-group-13-main-bg: #FFE082;--nt-group-13-dark-bg: #CAAE53;--nt-group-13-light-bg: #FFFFB3;--nt-group-14-main: #000000;--nt-group-14-dark: #000000;--nt-group-14-light: #000000;--nt-group-14-main-bg: #FFCC80;--nt-group-14-dark-bg: #CA9B52;--nt-group-14-light-bg: #FFFFB0;--nt-group-15-main: #000000;--nt-group-15-dark: #000000;--nt-group-15-light: #000000;--nt-group-15-main-bg: #FFAB91;--nt-group-15-dark-bg: #C97B63;--nt-group-15-light-bg: #FFDDC1;--nt-group-16-main: #000000;--nt-group-16-dark: #000000;--nt-group-16-light: #000000;--nt-group-16-main-bg: #BCAAA4;--nt-group-16-dark-bg: #8C7B75;--nt-group-16-light-bg: #EFDCD5;--nt-group-17-main: #000000;--nt-group-17-dark: #000000;--nt-group-17-light: #000000;--nt-group-17-main-bg: #EEEEEE;--nt-group-17-dark-bg: #BCBCBC;--nt-group-17-light-bg: #FFFFFF;--nt-group-18-main: #000000;--nt-group-18-dark: #000000;--nt-group-18-light: #000000;--nt-group-18-main-bg: #B0BEC5;--nt-group-18-dark-bg: #808E95;--nt-group-18-light-bg: #E2F1F8}.nt-group-0 .nt-plan-group-summary,.nt-group-0 .nt-timeline-dot{color:var(--nt-group-0-dark);background-color:var(--nt-group-0-dark-bg)}.nt-group-0 .period{color:var(--nt-group-0-main);background-color:var(--nt-group-0-main-bg)}.nt-group-1 .nt-plan-group-summary,.nt-group-1 .nt-timeline-dot{color:var(--nt-group-1-dark);background-color:var(--nt-group-1-dark-bg)}.nt-group-1 .period{color:var(--nt-group-1-main);background-color:var(--nt-group-1-main-bg)}.nt-group-2 .nt-plan-group-summary,.nt-group-2 .nt-timeline-dot{color:var(--nt-group-2-dark);background-color:var(--nt-group-2-dark-bg)}.nt-group-2 .period{color:var(--nt-group-2-main);background-color:var(--nt-group-2-main-bg)}.nt-group-3 .nt-plan-group-summary,.nt-group-3 .nt-timeline-dot{color:var(--nt-group-3-dark);background-color:var(--nt-group-3-dark-bg)}.nt-group-3 .period{color:var(--nt-group-3-main);background-color:var(--nt-group-3-main-bg)}.nt-group-4 .nt-plan-group-summary,.nt-group-4 .nt-timeline-dot{color:var(--nt-group-4-dark);background-color:var(--nt-group-4-dark-bg)}.nt-group-4 .period{color:var(--nt-group-4-main);background-color:var(--nt-group-4-main-bg)}.nt-group-5 .nt-plan-group-summary,.nt-group-5 .nt-timeline-dot{color:var(--nt-group-5-dark);background-color:var(--nt-group-5-dark-bg)}.nt-group-5 .period{color:var(--nt-group-5-main);background-color:var(--nt-group-5-main-bg)}.nt-group-6 .nt-plan-group-summary,.nt-group-6 .nt-timeline-dot{color:var(--nt-group-6-dark);background-color:var(--nt-group-6-dark-bg)}.nt-group-6 .period{color:var(--nt-group-6-main);background-color:var(--nt-group-6-main-bg)}.nt-group-7 .nt-plan-group-summary,.nt-group-7 .nt-timeline-dot{color:var(--nt-group-7-dark);background-color:var(--nt-group-7-dark-bg)}.nt-group-7 .period{color:var(--nt-group-7-main);background-color:var(--nt-group-7-main-bg)}.nt-group-8 .nt-plan-group-summary,.nt-group-8 .nt-timeline-dot{color:var(--nt-group-8-dark);background-color:var(--nt-group-8-dark-bg)}.nt-group-8 .period{color:var(--nt-group-8-main);background-color:var(--nt-group-8-main-bg)}.nt-group-9 .nt-plan-group-summary,.nt-group-9 .nt-timeline-dot{color:var(--nt-group-9-dark);background-color:var(--nt-group-9-dark-bg)}.nt-group-9 .period{color:var(--nt-group-9-main);background-color:var(--nt-group-9-main-bg)}.nt-group-10 .nt-plan-group-summary,.nt-group-10 .nt-timeline-dot{color:var(--nt-group-10-dark);background-color:var(--nt-group-10-dark-bg)}.nt-group-10 .period{color:var(--nt-group-10-main);background-color:var(--nt-group-10-main-bg)}.nt-group-11 .nt-plan-group-summary,.nt-group-11 .nt-timeline-dot{color:var(--nt-group-11-dark);background-color:var(--nt-group-11-dark-bg)}.nt-group-11 .period{color:var(--nt-group-11-main);background-color:var(--nt-group-11-main-bg)}.nt-group-12 .nt-plan-group-summary,.nt-group-12 .nt-timeline-dot{color:var(--nt-group-12-dark);background-color:var(--nt-group-12-dark-bg)}.nt-group-12 .period{color:var(--nt-group-12-main);background-color:var(--nt-group-12-main-bg)}.nt-group-13 .nt-plan-group-summary,.nt-group-13 .nt-timeline-dot{color:var(--nt-group-13-dark);background-color:var(--nt-group-13-dark-bg)}.nt-group-13 .period{color:var(--nt-group-13-main);background-color:var(--nt-group-13-main-bg)}.nt-group-14 .nt-plan-group-summary,.nt-group-14 .nt-timeline-dot{color:var(--nt-group-14-dark);background-color:var(--nt-group-14-dark-bg)}.nt-group-14 .period{color:var(--nt-group-14-main);background-color:var(--nt-group-14-main-bg)}.nt-group-15 .nt-plan-group-summary,.nt-group-15 .nt-timeline-dot{color:var(--nt-group-15-dark);background-color:var(--nt-group-15-dark-bg)}.nt-group-15 .period{color:var(--nt-group-15-main);background-color:var(--nt-group-15-main-bg)}.nt-group-16 .nt-plan-group-summary,.nt-group-16 .nt-timeline-dot{color:var(--nt-group-16-dark);background-color:var(--nt-group-16-dark-bg)}.nt-group-16 .period{color:var(--nt-group-16-main);background-color:var(--nt-group-16-main-bg)}.nt-group-17 .nt-plan-group-summary,.nt-group-17 .nt-timeline-dot{color:var(--nt-group-17-dark);background-color:var(--nt-group-17-dark-bg)}.nt-group-17 .period{color:var(--nt-group-17-main);background-color:var(--nt-group-17-main-bg)}.nt-group-18 .nt-plan-group-summary,.nt-group-18 .nt-timeline-dot{color:var(--nt-group-18-dark);background-color:var(--nt-group-18-dark-bg)}.nt-group-18 .period{color:var(--nt-group-18-main);background-color:var(--nt-group-18-main-bg)}.nt-error{border:2px dashed darkred;padding:0 1rem;background:#faf9ba;color:darkred}.nt-timeline{margin-top:30px}.nt-timeline .nt-timeline-title{font-size:1.1rem;margin-top:0}.nt-timeline .nt-timeline-sub-title{margin-top:0}.nt-timeline .nt-timeline-content{font-size:.8rem;border-bottom:2px dashed #ccc;padding-bottom:1.2rem}.nt-timeline.horizontal .nt-timeline-items{flex-direction:row;overflow-x:scroll}.nt-timeline.horizontal .nt-timeline-items>div{min-width:400px;margin-right:50px}.nt-timeline.horizontal.reverse .nt-timeline-items{flex-direction:row-reverse}.nt-timeline.horizontal.center .nt-timeline-before{background-image:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal.center .nt-timeline-after{background-image:linear-gradient(180deg, rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal.center .nt-timeline-items{background-image:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%);background-repeat:no-repeat;background-size:100% 2px;background-position:0 center}.nt-timeline.horizontal .nt-timeline-dot{left:50%}.nt-timeline.horizontal .nt-timeline-dot:not(.bigger){top:calc(50% - 4px)}.nt-timeline.horizontal .nt-timeline-dot.bigger{top:calc(50% - 15px)}.nt-timeline.vertical .nt-timeline-items{flex-direction:column}.nt-timeline.vertical.reverse .nt-timeline-items{flex-direction:column-reverse}.nt-timeline.vertical.center .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%}.nt-timeline.vertical.center .nt-timeline-dot{left:calc(50% - 10px)}.nt-timeline.vertical.center .nt-timeline-dot:not(.bigger){top:10px}.nt-timeline.vertical.center .nt-timeline-dot.bigger{left:calc(50% - 20px)}.nt-timeline.vertical.left{padding-left:100px}.nt-timeline.vertical.left .nt-timeline-item{padding-left:70px}.nt-timeline.vertical.left .nt-timeline-sub-title{left:-100px;width:100px}.nt-timeline.vertical.left .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%}.nt-timeline.vertical.left .nt-timeline-dot{left:21px;top:8px}.nt-timeline.vertical.left .nt-timeline-dot.bigger{top:0px;left:10px}.nt-timeline.vertical.right{padding-right:100px}.nt-timeline.vertical.right .nt-timeline-sub-title{right:-100px;text-align:left;width:100px}.nt-timeline.vertical.right .nt-timeline-item{padding-right:70px}.nt-timeline.vertical.right .nt-timeline-before{background:linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-after{background:linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-items{background:radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%}.nt-timeline.vertical.right .nt-timeline-dot{right:21px;top:8px}.nt-timeline.vertical.right .nt-timeline-dot.bigger{top:10px;right:10px}.nt-timeline-items{display:flex;position:relative}.nt-timeline-items>div{min-height:100px;padding-top:2px;padding-bottom:20px}.nt-timeline-before{content:"";height:15px}.nt-timeline-after{content:"";height:60px;margin-bottom:20px}.nt-timeline-sub-title{position:absolute;width:50%;top:4px;font-size:18px;color:var(--nt-color-50)}[data-md-color-scheme=slate] .nt-timeline-sub-title{color:var(--nt-color-51)}.nt-timeline-item{position:relative}.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item{padding-left:calc(50% + 40px)}.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title{left:0;padding-right:40px;text-align:right}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd){padding-left:calc(50% + 40px)}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title{left:0;padding-right:40px;text-align:right}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even){text-align:right;padding-right:calc(50% + 40px)}.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title{right:0;padding-left:40px;text-align:left}.nt-timeline-dot{position:relative;width:20px;height:20px;border-radius:100%;background-color:#fc5b5b;position:absolute;top:0px;z-index:2;display:flex;justify-content:center;align-items:center;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border:3px solid #fff}.nt-timeline-dot:not(.bigger) .icon{font-size:10px}.nt-timeline-dot.bigger{width:40px;height:40px;padding:3px}.nt-timeline-dot .icon{color:#fff}@supports not (-moz-appearance: none){details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title,details .nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title{left:-40px}details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title{right:-40px}details .nt-timeline.vertical.center .nt-timeline-dot{left:calc(50% - 12px)}details .nt-timeline-dot.bigger{font-size:1rem !important}}.nt-timeline-item:nth-child(0) .nt-timeline-dot{background-color:var(--nt-color-0)}.nt-timeline-item:nth-child(1) .nt-timeline-dot{background-color:var(--nt-color-1)}.nt-timeline-item:nth-child(2) .nt-timeline-dot{background-color:var(--nt-color-2)}.nt-timeline-item:nth-child(3) .nt-timeline-dot{background-color:var(--nt-color-3)}.nt-timeline-item:nth-child(4) .nt-timeline-dot{background-color:var(--nt-color-4)}.nt-timeline-item:nth-child(5) .nt-timeline-dot{background-color:var(--nt-color-5)}.nt-timeline-item:nth-child(6) .nt-timeline-dot{background-color:var(--nt-color-6)}.nt-timeline-item:nth-child(7) .nt-timeline-dot{background-color:var(--nt-color-7)}.nt-timeline-item:nth-child(8) .nt-timeline-dot{background-color:var(--nt-color-8)}.nt-timeline-item:nth-child(9) .nt-timeline-dot{background-color:var(--nt-color-9)}.nt-timeline-item:nth-child(10) .nt-timeline-dot{background-color:var(--nt-color-10)}.nt-timeline-item:nth-child(11) .nt-timeline-dot{background-color:var(--nt-color-11)}.nt-timeline-item:nth-child(12) .nt-timeline-dot{background-color:var(--nt-color-12)}.nt-timeline-item:nth-child(13) .nt-timeline-dot{background-color:var(--nt-color-13)}.nt-timeline-item:nth-child(14) .nt-timeline-dot{background-color:var(--nt-color-14)}.nt-timeline-item:nth-child(15) .nt-timeline-dot{background-color:var(--nt-color-15)}.nt-timeline-item:nth-child(16) .nt-timeline-dot{background-color:var(--nt-color-16)}.nt-timeline-item:nth-child(17) .nt-timeline-dot{background-color:var(--nt-color-17)}.nt-timeline-item:nth-child(18) .nt-timeline-dot{background-color:var(--nt-color-18)}.nt-timeline-item:nth-child(19) .nt-timeline-dot{background-color:var(--nt-color-19)}.nt-timeline-item:nth-child(20) .nt-timeline-dot{background-color:var(--nt-color-20)}:root{--nt-scrollbar-color: #2751b0;--nt-plan-actions-height: 24px;--nt-units-background: #ff9800;--nt-months-background: #2751b0;--nt-plan-vertical-line-color: #a3a3a3ad}.nt-pastello{--nt-scrollbar-color: #9fb8f4;--nt-units-background: #f5dc82;--nt-months-background: #5b7fd1}[data-md-color-scheme=slate]{--nt-units-background: #003773}[data-md-color-scheme=slate] .nt-pastello{--nt-units-background: #3f4997}.nt-plan-root{min-height:200px;scrollbar-width:20px;scrollbar-color:var(--nt-scrollbar-color);display:flex}.nt-plan-root ::-webkit-scrollbar{width:20px}.nt-plan-root ::-webkit-scrollbar-track{box-shadow:inset 0 0 5px gray;border-radius:10px}.nt-plan-root ::-webkit-scrollbar-thumb{background:var(--nt-scrollbar-color);border-radius:10px}.nt-plan-root .nt-plan{flex:80%}.nt-plan-root.no-groups .nt-plan-periods{padding-left:0}.nt-plan-root.no-groups .nt-plan-group-summary{display:none}.nt-plan-root .nt-timeline-dot.bigger{top:-10px}.nt-plan-root .nt-timeline-dot.bigger[title]{cursor:help}.nt-plan{white-space:nowrap;overflow-x:auto;display:flex}.nt-plan .ug-timeline-dot{left:368px;top:-8px;cursor:help}.months{display:flex}.month{flex:auto;display:inline-block;box-shadow:rgba(0,0,0,.2) 0px 3px 1px -2px,rgba(0,0,0,.14) 0px 2px 2px 0px,rgba(0,0,0,.12) 0px 1px 5px 0px inset;background-color:var(--nt-months-background);color:#fff;text-transform:uppercase;font-family:Roboto,Helvetica,Arial,sans-serif;padding:2px 5px;font-size:12px;border:1px solid #000;width:150px;border-radius:8px}.nt-plan-group-activities{flex:auto;position:relative}.nt-vline{border-left:1px dashed var(--nt-plan-vertical-line-color);height:100%;left:0;position:absolute;margin-left:-0.5px;top:0;-webkit-transition:all .5s linear !important;-moz-transition:all .5s linear !important;-ms-transition:all .5s linear !important;-o-transition:all .5s linear !important;transition:all .5s linear !important;z-index:-2}.nt-plan-activity{display:flex;margin:2px 0;background-color:rgba(187,187,187,.2509803922)}.actions{height:var(--nt-plan-actions-height)}.actions{position:relative}.period{display:inline-block;height:var(--nt-plan-actions-height);width:120px;position:absolute;left:0px;background:#1da1f2;border-radius:5px;transition:all .5s;cursor:help;-webkit-transition:width 1s ease-in-out;-moz-transition:width 1s ease-in-out;-o-transition:width 1s ease-in-out;transition:width 1s ease-in-out}.period .nt-tooltip{display:none;top:30px;position:relative;padding:1rem;text-align:center;font-size:12px}.period:hover .nt-tooltip{display:inline-block}.period-0{left:340px;visibility:visible;background-color:#456165}.period-1{left:40px;visibility:visible;background-color:green}.period-2{left:120px;visibility:visible;background-color:pink;width:80px}.period-3{left:190px;visibility:visible;background-color:darkred;width:150px}.weeks>span,.days>span{height:25px}.weeks>span{display:inline-block;margin:0;padding:0;font-weight:bold}.weeks>span .week-text{font-size:10px;position:absolute;display:inline-block;padding:3px 4px}.days{z-index:-2;position:relative}.day-text{font-size:10px;position:absolute;display:inline-block;padding:3px 4px}.period span{font-size:12px;vertical-align:top;margin-left:4px;color:#000;background:rgba(255,255,255,.6588235294);border-radius:6px;padding:0 4px}.weeks,.days{height:20px;display:flex;box-sizing:content-box}.months{display:flex}.week,.day{height:20px;position:relative;border:1;flex:auto;border:2px solid #fff;border-radius:4px;background-color:var(--nt-units-background);cursor:help}.years{display:flex}.year{text-align:center;border-right:1px solid var(--nt-plan-vertical-line-color);font-weight:bold}.year:first-child{border-left:1px solid var(--nt-plan-vertical-line-color)}.year:first-child:last-child{width:100%}.quarters{display:flex}.quarter{width:12.5%;text-align:center;border-right:1px solid var(--nt-plan-vertical-line-color);font-weight:bold}.quarter:first-child{border-left:1px solid var(--nt-plan-vertical-line-color)}.nt-plan-group{margin:20px 0;position:relative}.nt-plan-group{display:flex}.nt-plan-group-summary{background:#2751b0;width:150px;white-space:normal;padding:.1rem .5rem;border-radius:5px;color:#fff;z-index:3}.nt-plan-group-summary p{margin:0;padding:0;font-size:.6rem;color:#fff}.nt-plan-group-summary,.month,.period,.week,.day,.nt-tooltip{border:3px solid #fff;box-shadow:0 2px 3px -1px rgba(0,0,0,.2),0 3px 3px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.nt-plan-periods{padding-left:150px}.months{z-index:2;position:relative}.weeks{position:relative;top:-2px;z-index:0}.month,.quarter,.year,.week,.day,.nt-tooltip{font-family:Roboto,Helvetica,Arial,sans-serif;box-sizing:border-box}.nt-cards.nt-grid{display:grid;grid-auto-columns:1fr;gap:.5rem;max-width:100vw;overflow-x:auto;padding:1px}.nt-cards.nt-grid.cols-1{grid-template-columns:repeat(1, 1fr)}.nt-cards.nt-grid.cols-2{grid-template-columns:repeat(2, 1fr)}.nt-cards.nt-grid.cols-3{grid-template-columns:repeat(3, 1fr)}.nt-cards.nt-grid.cols-4{grid-template-columns:repeat(4, 1fr)}.nt-cards.nt-grid.cols-5{grid-template-columns:repeat(5, 1fr)}.nt-cards.nt-grid.cols-6{grid-template-columns:repeat(6, 1fr)}@media only screen and (max-width: 400px){.nt-cards.nt-grid{grid-template-columns:repeat(1, 1fr) !important}}.nt-card{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.nt-card:hover{box-shadow:0 2px 2px 0 rgba(0,0,0,.24),0 3px 1px -2px rgba(0,0,0,.3),0 1px 5px 0 rgba(0,0,0,.22)}[data-md-color-scheme=slate] .nt-card{box-shadow:0 2px 2px 0 rgba(4,40,33,.14),0 3px 1px -2px rgba(40,86,94,.47),0 1px 5px 0 rgba(139,252,255,.64)}[data-md-color-scheme=slate] .nt-card:hover{box-shadow:0 2px 2px 0 rgba(0,255,206,.14),0 3px 1px -2px rgba(33,156,177,.47),0 1px 5px 0 rgba(96,251,255,.64)}.nt-card>a{color:var(--md-default-fg-color)}.nt-card>a>div{cursor:pointer}.nt-card{padding:5px;margin-bottom:.5rem}.nt-card-title{font-size:1rem;font-weight:bold;margin:4px 0 8px 0;line-height:22px}.nt-card-content{padding:.4rem .8rem .8rem .8rem}.nt-card-text{font-size:14px;padding:0;margin:0}.nt-card .nt-card-image{text-align:center;border-radius:2px;background-position:center center;background-size:cover;background-repeat:no-repeat;min-height:120px}.nt-card .nt-card-image.tags img{margin-top:12px}.nt-card .nt-card-image img{height:105px;margin-top:5px}.nt-card a:hover,.nt-card a:focus{color:var(--md-accent-fg-color)}.nt-card h2{margin:0}.span-table-wrapper table{border-collapse:collapse;margin-bottom:2rem;border-radius:.1rem}.span-table td,.span-table th{padding:.2rem;background-color:var(--md-default-bg-color);font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto;border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.span-table tr:first-child td{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.span-table td:first-child{border-left:.05rem solid var(--md-typeset-table-color)}.span-table td:last-child{border-right:.05rem solid var(--md-typeset-table-color)}.span-table tr:last-child{border-bottom:.05rem solid var(--md-typeset-table-color)}.span-table [colspan],.span-table [rowspan]{font-weight:bold;border:.05rem solid var(--md-typeset-table-color)}.span-table tr:not(:first-child):hover td:not([colspan]):not([rowspan]),.span-table td[colspan]:hover,.span-table td[rowspan]:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset;transition:background-color 125ms} diff --git a/docs/docs/css/neoteroi-spantable.css b/docs/docs/css/neoteroi-spantable.css new file mode 100644 index 0000000..be069a8 --- /dev/null +++ b/docs/docs/css/neoteroi-spantable.css @@ -0,0 +1,56 @@ +/** + * Extra CSS file recommended for MkDocs and neoteroi.spantable extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +.span-table-wrapper table { + border-collapse: collapse; + margin-bottom: 2rem; + border-radius: 0.1rem; +} + +.span-table td, +.span-table th { + padding: 0.2rem; + background-color: var(--md-default-bg-color); + font-size: 0.64rem; + max-width: 100%; + overflow: auto; + touch-action: auto; + border-top: 0.05rem solid var(--md-typeset-table-color); + padding: 0.9375em 1.25em; + vertical-align: top; +} + +.span-table tr:first-child td { + font-weight: 700; + min-width: 5rem; + padding: 0.9375em 1.25em; + vertical-align: top; +} + +.span-table td:first-child { + border-left: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table td:last-child { + border-right: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table tr:last-child { + border-bottom: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table [colspan], +.span-table [rowspan] { + font-weight: bold; + border: 0.05rem solid var(--md-typeset-table-color); +} + +.span-table tr:not(:first-child):hover td:not([colspan]):not([rowspan]), +.span-table td[colspan]:hover, +.span-table td[rowspan]:hover { + background-color: rgba(0, 0, 0, 0.035); + box-shadow: 0 0.05rem 0 var(--md-default-bg-color) inset; + transition: background-color 125ms; +} diff --git a/docs/docs/css/neoteroi-timeline.css b/docs/docs/css/neoteroi-timeline.css new file mode 100644 index 0000000..6822089 --- /dev/null +++ b/docs/docs/css/neoteroi-timeline.css @@ -0,0 +1,340 @@ +/** + * Extra CSS file for MkDocs and the neoteroi.timeline extension. + * + * https://github.com/Neoteroi/mkdocs-plugins +**/ +.nt-error { + border: 2px dashed darkred; + padding: 0 1rem; + background: #faf9ba; + color: darkred; +} + +.nt-timeline { + margin-top: 30px; +} +.nt-timeline .nt-timeline-title { + font-size: 1.1rem; + margin-top: 0; +} +.nt-timeline .nt-timeline-sub-title { + margin-top: 0; +} +.nt-timeline .nt-timeline-content { + font-size: 0.8rem; + border-bottom: 2px dashed #ccc; + padding-bottom: 1.2rem; +} +.nt-timeline.horizontal .nt-timeline-items { + flex-direction: row; + overflow-x: scroll; +} +.nt-timeline.horizontal .nt-timeline-items > div { + min-width: 400px; + margin-right: 50px; +} +.nt-timeline.horizontal.reverse .nt-timeline-items { + flex-direction: row-reverse; +} +.nt-timeline.horizontal.center .nt-timeline-before { + background-image: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal.center .nt-timeline-after { + background-image: linear-gradient(180deg, rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal.center .nt-timeline-items { + background-image: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%); + background-repeat: no-repeat; + background-size: 100% 2px; + background-position: 0 center; +} +.nt-timeline.horizontal .nt-timeline-dot { + left: 50%; +} +.nt-timeline.horizontal .nt-timeline-dot:not(.bigger) { + top: calc(50% - 4px); +} +.nt-timeline.horizontal .nt-timeline-dot.bigger { + top: calc(50% - 15px); +} +.nt-timeline.vertical .nt-timeline-items { + flex-direction: column; +} +.nt-timeline.vertical.reverse .nt-timeline-items { + flex-direction: column-reverse; +} +.nt-timeline.vertical.center .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat center/2px 100%; +} +.nt-timeline.vertical.center .nt-timeline-dot { + left: calc(50% - 10px); +} +.nt-timeline.vertical.center .nt-timeline-dot:not(.bigger) { + top: 10px; +} +.nt-timeline.vertical.center .nt-timeline-dot.bigger { + left: calc(50% - 20px); +} +.nt-timeline.vertical.left { + padding-left: 100px; +} +.nt-timeline.vertical.left .nt-timeline-item { + padding-left: 70px; +} +.nt-timeline.vertical.left .nt-timeline-sub-title { + left: -100px; + width: 100px; +} +.nt-timeline.vertical.left .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat 30px/2px 100%; +} +.nt-timeline.vertical.left .nt-timeline-dot { + left: 21px; + top: 8px; +} +.nt-timeline.vertical.left .nt-timeline-dot.bigger { + top: 0px; + left: 10px; +} +.nt-timeline.vertical.right { + padding-right: 100px; +} +.nt-timeline.vertical.right .nt-timeline-sub-title { + right: -100px; + text-align: left; + width: 100px; +} +.nt-timeline.vertical.right .nt-timeline-item { + padding-right: 70px; +} +.nt-timeline.vertical.right .nt-timeline-before { + background: linear-gradient(rgba(252, 70, 107, 0) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-after { + background: linear-gradient(rgb(252, 70, 107) 0%, rgba(252, 70, 107, 0) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-items { + background: radial-gradient(circle, rgb(63, 94, 251) 0%, rgb(252, 70, 107) 100%) no-repeat calc(100% - 30px)/2px 100%; +} +.nt-timeline.vertical.right .nt-timeline-dot { + right: 21px; + top: 8px; +} +.nt-timeline.vertical.right .nt-timeline-dot.bigger { + top: 10px; + right: 10px; +} + +.nt-timeline-items { + display: flex; + position: relative; +} +.nt-timeline-items > div { + min-height: 100px; + padding-top: 2px; + padding-bottom: 20px; +} + +.nt-timeline-before { + content: ""; + height: 15px; +} + +.nt-timeline-after { + content: ""; + height: 60px; + margin-bottom: 20px; +} + +.nt-timeline-sub-title { + position: absolute; + width: 50%; + top: 4px; + font-size: 18px; + color: var(--nt-color-50); +} + +[data-md-color-scheme=slate] .nt-timeline-sub-title { + color: var(--nt-color-51); +} + +.nt-timeline-item { + position: relative; +} + +.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item { + padding-left: calc(50% + 40px); +} +.nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title { + left: 0; + padding-right: 40px; + text-align: right; +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) { + padding-left: calc(50% + 40px); +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title { + left: 0; + padding-right: 40px; + text-align: right; +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) { + text-align: right; + padding-right: calc(50% + 40px); +} +.nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title { + right: 0; + padding-left: 40px; + text-align: left; +} + +.nt-timeline-dot { + position: relative; + width: 20px; + height: 20px; + border-radius: 100%; + background-color: #fc5b5b; + position: absolute; + top: 0px; + z-index: 2; + display: flex; + justify-content: center; + align-items: center; + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); + border: 3px solid white; +} +.nt-timeline-dot:not(.bigger) .icon { + font-size: 10px; +} +.nt-timeline-dot.bigger { + width: 40px; + height: 40px; + padding: 3px; +} +.nt-timeline-dot .icon { + color: white; +} + +/* Fix for webkit (Chrome, Safari) */ +@supports not (-moz-appearance: none) { + /* + This fix is necessary, for some reason, to render the timeline properly + inside `details` elements used by pymdownx. Firefox doesn't need this fix, + it renders elements properly. + */ + details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(odd) .nt-timeline-sub-title, +details .nt-timeline.vertical.center:not(.alternate) .nt-timeline-item .nt-timeline-sub-title { + left: -40px; + } + details .nt-timeline.vertical.center.alternate .nt-timeline-item:nth-child(even) .nt-timeline-sub-title { + right: -40px; + } + details .nt-timeline.vertical.center .nt-timeline-dot { + left: calc(50% - 12px); + } + details .nt-timeline-dot.bigger { + font-size: 1rem !important; + } +} +/* default colors */ +.nt-timeline-item:nth-child(0) .nt-timeline-dot { + background-color: var(--nt-color-0); +} + +.nt-timeline-item:nth-child(1) .nt-timeline-dot { + background-color: var(--nt-color-1); +} + +.nt-timeline-item:nth-child(2) .nt-timeline-dot { + background-color: var(--nt-color-2); +} + +.nt-timeline-item:nth-child(3) .nt-timeline-dot { + background-color: var(--nt-color-3); +} + +.nt-timeline-item:nth-child(4) .nt-timeline-dot { + background-color: var(--nt-color-4); +} + +.nt-timeline-item:nth-child(5) .nt-timeline-dot { + background-color: var(--nt-color-5); +} + +.nt-timeline-item:nth-child(6) .nt-timeline-dot { + background-color: var(--nt-color-6); +} + +.nt-timeline-item:nth-child(7) .nt-timeline-dot { + background-color: var(--nt-color-7); +} + +.nt-timeline-item:nth-child(8) .nt-timeline-dot { + background-color: var(--nt-color-8); +} + +.nt-timeline-item:nth-child(9) .nt-timeline-dot { + background-color: var(--nt-color-9); +} + +.nt-timeline-item:nth-child(10) .nt-timeline-dot { + background-color: var(--nt-color-10); +} + +.nt-timeline-item:nth-child(11) .nt-timeline-dot { + background-color: var(--nt-color-11); +} + +.nt-timeline-item:nth-child(12) .nt-timeline-dot { + background-color: var(--nt-color-12); +} + +.nt-timeline-item:nth-child(13) .nt-timeline-dot { + background-color: var(--nt-color-13); +} + +.nt-timeline-item:nth-child(14) .nt-timeline-dot { + background-color: var(--nt-color-14); +} + +.nt-timeline-item:nth-child(15) .nt-timeline-dot { + background-color: var(--nt-color-15); +} + +.nt-timeline-item:nth-child(16) .nt-timeline-dot { + background-color: var(--nt-color-16); +} + +.nt-timeline-item:nth-child(17) .nt-timeline-dot { + background-color: var(--nt-color-17); +} + +.nt-timeline-item:nth-child(18) .nt-timeline-dot { + background-color: var(--nt-color-18); +} + +.nt-timeline-item:nth-child(19) .nt-timeline-dot { + background-color: var(--nt-color-19); +} + +.nt-timeline-item:nth-child(20) .nt-timeline-dot { + background-color: var(--nt-color-20); +} diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index cd1570d..086b8e4 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -102,6 +102,7 @@ extra: extra_css: - stylesheets/extra.css + - css/neoteroi-mkdocs.css extra_javascript: - javascripts/extra.js @@ -110,6 +111,51 @@ copyright: > Copyright © 2013 - PRESENT. HydroRoll-Team – Change cookie settings +markdown_extensions: + - neoteroi.timeline + - neoteroi.cards + - neoteroi.projects + - neoteroi.spantable + - abbr + - admonition + - attr_list + - def_list + - footnotes + - md_in_html + - toc: + permalink: true + - pymdownx.arithmatex: + generic: true + - pymdownx.betterem: + smart_enable: all + - pymdownx.caret + - pymdownx.details + - pymdownx.emoji: + emoji_generator: !!python/name:materialx.emoji.to_svg + emoji_index: !!python/name:materialx.emoji.twemoji + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.keys + - pymdownx.magiclink: + repo_url_shorthand: true + user: squidfunk + repo: mkdocs-material + - pymdownx.mark + - pymdownx.smartsymbols + - pymdownx.superfences: + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_code_format + - pymdownx.tabbed: + alternate_style: true + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.tilde + plugins: - blog - search @@ -117,6 +163,9 @@ plugins: - git-revision-date-localized: enable_creation_date: true fallback_to_build_date: true + timezone: Asia/Shanghai + type: timeago + custom_format: "%d. %B %Y" # - git-committers: # repository: HydroRoll-Team/psi # branch: main \ No newline at end of file diff --git a/docs/overrides/main.html b/docs/overrides/main.html index ec4ec2a..d07c0ab 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -10,4 +10,4 @@ {% endif %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/docs/requirements.txt b/docs/requirements.txt index b27a670..363e9c6 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -2,4 +2,5 @@ mkdocs-material mkdocs-blog-plugin mkdocs-git-revision-date-localized-plugin mkdocs-git-authors-plugin -mkdocs-material-extensions>=1.1 \ No newline at end of file +mkdocs-material-extensions>=1.1 +neoteroi-mkdocs \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 3995e2e9e89cb8fcb10dc29bff3fb95e10fa2ab1 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 14:06:39 +0800 Subject: add showcase --- docs/docs/changelog/index.md | 43 ------------------------------------------- docs/docs/index.md | 11 +++++++++++ docs/docs/res/main.pdf | Bin 0 -> 54209 bytes docs/docs/showcase/index.md | 24 ++++++++++++++++++++++++ 4 files changed, 35 insertions(+), 43 deletions(-) create mode 100644 docs/docs/res/main.pdf create mode 100644 docs/docs/showcase/index.md diff --git a/docs/docs/changelog/index.md b/docs/docs/changelog/index.md index 50e7928..e69de29 100644 --- a/docs/docs/changelog/index.md +++ b/docs/docs/changelog/index.md @@ -1,43 +0,0 @@ -::gantt:: - -- title: Definition Phase - activities: - - title: Creative Brief - start: 2022-03-03 - lasts: 1 day - - title: Graphic Design Research - start: 2022-03-02 - end: 2022-03-10 - lasts: 2 weeks - - title: Brainstorming / Mood Boarding - start: 2022-03-11 - end: 2022-03-20 - -- title: Creation Phase - activities: - - title: Sketching - start: 2022-03-21 - end: 2022-04-01 - - title: Design Building - start: 2022-04-02 - end: 2022-04-20 - - title: Refining - start: 2022-04-21 - end: 2022-04-30 - -- title: Feedback Phase - activities: - - title: Presenting - start: 2022-04-22 - end: 2022-05-01 - - title: Revisions - start: 2022-05-02 - end: 2022-05-10 - -- title: Delivery Phase - activities: - - title: Final delivery - start: 2022-05-11 - end: 2022-05-12 - -::/gantt:: diff --git a/docs/docs/index.md b/docs/docs/index.md index e3ade6a..e07e102 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -1,3 +1,11 @@ +--- +hide: + - path + - navigation +--- + + + Psi CLI 语言 ======================== @@ -23,6 +31,9 @@ Features - `Documentation Module`_: This module uses reStructuredText and Sphinx to build the documentation, providing API interface descriptions and usage examples. + Getting Started --------------- diff --git a/docs/docs/res/main.pdf b/docs/docs/res/main.pdf new file mode 100644 index 0000000..4ec4dd7 Binary files /dev/null and b/docs/docs/res/main.pdf differ diff --git a/docs/docs/showcase/index.md b/docs/docs/showcase/index.md new file mode 100644 index 0000000..f58ab2f --- /dev/null +++ b/docs/docs/showcase/index.md @@ -0,0 +1,24 @@ +--- +hide: + - navigation + - toc + - path +--- + +::gantt:: + +- title: Definition Phase + activities: + - title: Creative Brief + start: 2023-07-21 + end: 2023-08-21 + lasts: 1 months + - title: Graphic Design Research + start: 2023-08-22 + end: 2023-08-30 + lasts: 2 weeks + - title: Brainstorming / Mood Boarding + start: 2023-08-31 + end: 2023-12-20 + +::/gantt:: -- cgit v1.2.3-70-g09d2 From 70908b2d0571278597f97bcae7bc2a1bc9773906 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 16:11:05 +0800 Subject: fix url --- readme.rst | 2 +- tests/if-else.py | 76 -------------------------------------------------------- 2 files changed, 1 insertion(+), 77 deletions(-) diff --git a/readme.rst b/readme.rst index 40367f4..1195ef2 100644 --- a/readme.rst +++ b/readme.rst @@ -85,7 +85,7 @@ How to build docs Documentation ------------- -Psi documentation is available at `retrofor `_. +Psi documentation is available at `psi.retrofor `_. You can also view it throw the following links: diff --git a/tests/if-else.py b/tests/if-else.py index f97322a..e69de29 100644 --- a/tests/if-else.py +++ b/tests/if-else.py @@ -1,76 +0,0 @@ -class AssignNode: - def __init__(self, variable, value): - self.variable = variable - self.value = value - -class ComparisonNode: - def __init__(self, operator, left, right): - self.operator = operator - self.left = left - self.right = right - -class IfNode: - def __init__(self, condition, body): - self.condition = condition - self.body = body - -class ReplyNode: - def __init__(self, message): - self.message = message - -import ast - -def parse_code(code): - tree = ast.parse(code) - return parse_node(tree.body[0]) - -def parse_node(node): - if isinstance(node, ast.Assign): - variable = node.targets[0].id - value = parse_node(node.value) - return AssignNode(variable, value) - elif isinstance(node, ast.Compare): - operator = node.ops[0] - left = parse_node(node.left) - right = parse_node(node.comparators[0]) - return ComparisonNode(operator, left, right) - elif isinstance(node, ast.If): - condition = parse_node(node.test) - body = parse_node(node.body[0]) - return IfNode(condition, body) - elif isinstance(node, ast.Expr): - return ReplyNode(node.value.s) - elif isinstance(node, ast.Name): - return node.id - elif isinstance(node, ast.Num): - return node.n - -def execute_ast(ast, environment): - if isinstance(ast, AssignNode): - environment[ast.variable] = ast.value - elif isinstance(ast, ComparisonNode): - left = execute_ast(ast.left, environment) - right = execute_ast(ast.right, environment) - if ast.operator == '==': - return left == right - elif ast.operator == '!=': - return left != right - elif ast.operator == '<': - return left < right - elif ast.operator == '>': - return left > right - elif isinstance(ast, IfNode): - if condition := execute_ast(ast.condition, environment): - execute_ast(ast.body, environment) - elif isinstance(ast, ReplyNode): - message = ast.message.format(**environment) - print(message) - -def main(): - code = input("请输入代ç : ") - ast = parse_code(code) - environment = {} - execute_ast(ast, environment) - -if __name__ == "__main__": - main() -- cgit v1.2.3-70-g09d2 From a3709d1ec5596e3413e0320d882ecebfc00afba7 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 23:10:19 +0800 Subject: charge index --- .gitignore | 2 +- docs/docs/index.md | 70 +++++++++++++++++++++-------------------------------- docs/mkdocs.yml | 38 +++++++---------------------- src/main.pdf | Bin 54209 -> 53625 bytes src/main.tex | 2 +- 5 files changed, 38 insertions(+), 74 deletions(-) diff --git a/.gitignore b/.gitignore index 1f70b39..1ac40bb 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ src/main.log src/main.synctex.gz # LangTrans -LangTrans-main/ +LangTrans/ # mkdocs docs/site/ \ No newline at end of file diff --git a/docs/docs/index.md b/docs/docs/index.md index e07e102..246dd18 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -2,58 +2,42 @@ hide: - path - navigation + - toc --- +
+

Psi CLI

-Psi CLI 语言 -======================== + Psi 是一个函数å¼ç¼–ç¨‹è¯­è¨€ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªCLI语言,旨在通过人机交互实现指定的功能。该语言的设计目标是简å•ã€æ˜“ç”¨ã€æ˜“å­¦ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªå¤šèŒƒå¼è¯­è¨€ï¼Œæ”¯æŒå‡½æ•°å¼ã€å‘½ä»¤å¼ã€é¢å‘对象ã€é¢å‘过程等多ç§ç¼–程范å¼ã€‚
+ å®ƒæ˜¯éª°ä¸»ä»¥åŠæ’件或模型作者入门水系的关键。 -Psi is a new programming language designed with simplicity, flexibility, and performance in mind. It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. +
+::cards:: cols=2 -Features --------- +- title: è¯æ³•分æžå™¨æ¨¡å— + content: | + è¯æ³•分æžå™¨æ¨¡å—负责将æºä»£ç è½¬æ¢ä¸ºä¸€ç³»åˆ—标记(tokens)。它识别语言的基本元素,如标识符ã€å…³é”®å­—ã€è¿ç®—符和字é¢é‡ã€‚ + +- title: 语法分æžå™¨æ¨¡å— + content: | + 语法分æžå™¨æ¨¡å—æŽ¥æ”¶è¯æ³•分æžå™¨æ¨¡å—生æˆçš„æ ‡è®°åºåˆ—,并将其转æ¢ä¸ºæŠ½è±¡è¯­æ³•树(AST)。AST是一ç§ç±»ä¼¼æ ‘状的数æ®ç»“构,以更接近编程语言的语法结构的方å¼è¡¨ç¤ºæºä»£ç ã€‚ +- title: å†…ç½®ç±»åž‹æ¨¡å— + content: | + 此模å—定义了Psi语言的内置类型,如列表和字典。它æä¾›äº†ç”¨äºŽåˆ›å»ºå’Œæ“作这些类型实例的函数。 +- title: é”™è¯¯å¤„ç†æ¨¡å— + content: | + æ­¤æ¨¡å—æä¾›äº†åœ¨è¿è¡Œæ—¶æ•获和处ç†é”™è¯¯çš„æœºåˆ¶ã€‚它定义了一组异常类和用于抛出和æ•获这些异常的函数。 +- title: æ‰§è¡ŒçŽ¯å¢ƒæ¨¡å— + content: | + 此模å—定义了Psi语言的执行环境,包括å˜é‡çš„作用域和生命周期。它æä¾›äº†ç”¨äºŽåœ¨æ‰§è¡ŒçŽ¯å¢ƒä¸­å®šä¹‰å’ŒæŸ¥æ‰¾å˜é‡çš„函数。 +- title: è§£é‡Šå™¨æ¨¡å— + content: | + 此模å—的主è¦ä»»åŠ¡æ˜¯é历AST并在执行环境中执行相应的æ“作。 -- `Lexer Module`_: The lexer module is responsible for converting the source code into a sequence of tokens. It recognizes the basic elements of the language such as identifiers, keywords, operators, and literals. ``['OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'SEPARATOR', 'CONTROL', 'IDENTIFIER', 'OPERATOR', 'INTEGER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'OPERATOR', 'IDENTIFIER', 'SEPARATOR', 'IDENTIFIER', 'SEPARATOR', 'EOF']`` - -- `Parser Module`_: The parser module takes the sequence of tokens generated by the lexer module and transforms it into an Abstract Syntax Tree (AST). The AST is a tree-like data structure that represents the source code in a way that is closer to the syntactic structure of the programming language. - -- `Built-in Types Module`_: This module defines the built-in types of the Psi language, such as lists and dictionaries. It provides functions for creating and manipulating instances of these types. - -- `Error Handling Module`_: This module provides a mechanism for catching and handling errors during runtime. It defines a set of exception classes and functions for throwing and catching these exceptions. - -- `Execution Environment Module`_: This module defines the execution environment of the Psi language, including the scope and lifecycle of variables. It provides functions for defining and looking up variables in the execution environment. - -- `Interpreter Module`_: The main task of this module is to traverse the AST and perform the corresponding operations in the execution environment. - -- `Mathematics Foundation Module`_: This module provides basic mathematical functions and constants, such as addition, subtraction, multiplication, and division. - -- `Documentation Module`_: This module uses reStructuredText and Sphinx to build the documentation, providing API interface descriptions and usage examples. +::/cards:: - -Getting Started ---------------- - -To get started with Psi, you can clone the repository and follow the instructions in the README file. The repository includes a comprehensive set of examples that demonstrate the various features of the language. - - -Contributing ------------- - -Contributions to the Psi project are welcome. If you have a feature request, bug report, or proposal for improvement, please open an issue on the project's GitHub page. If you wish to contribute code, please fork the repository and submit a pull request. - -How to build docs - - git clone https://github.com/HydroRoll-Team/psi.git - cd psi/psi/docs - sphinx-build -b html . _build/html - - -License -------- - -Psi is open-source software, licensed under the MIT license. This means you are free to use, modify, and distribute it under the terms of this license. diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 086b8e4..260b4d4 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -1,15 +1,15 @@ -site_name: Psi Docs (Draft) +site_name: Psi 文档 (è‰æ¡ˆ) repo_url: https://github.com/HydroRoll-Team/psi repo_name: HydroRoll-Team/psi edit_uri: edit/main/docs/docs/ site_author: Hsiang Nianian site_description: >- - Psi is a new programming language designed with simplicity, flexibility, and performance in mind. - It provides a clean and intuitive syntax that is easy to read and write, making it an excellent choice for both beginners and experienced programmers. - + Psi 是一个函数å¼ç¼–ç¨‹è¯­è¨€ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªCLI语言,旨在通过人机交互实现指定的功能。 + 该语言的设计目标是简å•ã€æ˜“ç”¨ã€æ˜“å­¦ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªå¤šèŒƒå¼è¯­è¨€ï¼Œæ”¯æŒå‡½æ•°å¼ã€å‘½ä»¤å¼ã€é¢å‘对象ã€é¢å‘过程等多ç§ç¼–程范å¼ã€‚ + theme: name: material - language: en + language: zh icon: logo: material/library-outline repo: fontawesome/brands/git-alt @@ -53,9 +53,6 @@ theme: name: Switch to system preference extra: - version: - provider: mike - default: stable homepage: https://psi.retrofor.space alternate: # - name: English @@ -65,12 +62,9 @@ extra: link: / lang: zh consent: - title: Cookie consent + title: Cookie å好设置 description: >- - We use cookies to recognize your repeated visits and preferences, as well - as to measure the effectiveness of our documentation and whether users - find what they're searching for. With your consent, you're helping us to - make our documentation better. + 我们使用Cookieæ¥è¯†åˆ«æ‚¨çš„é‡å¤è®¿é—®å’Œå好,以åŠè¡¡é‡æˆ‘ä»¬çš„æ–‡æ¡£çš„æœ‰æ•ˆæ€§å’Œç”¨æˆ·æ˜¯å¦æ‰¾åˆ°ä»–们æœç´¢çš„å†…å®¹ã€‚åœ¨æ‚¨çš„åŒæ„下,这将帮助我们改善我们的文档。 actions: - accept - manage @@ -81,21 +75,7 @@ extra: github: name: GitHub checked: true - analytics: - feedback: - title: Was this page helpful? - ratings: - - icon: material/emoticon-happy-outline - name: This page was helpful - data: 1 - note: >- - Thanks for your feedback! - - icon: material/emoticon-sad-outline - name: This page could be improved - data: 0 - note: >- - Thanks for your feedback! Help us improve this page by - using our feedback form. + social: - icon: fontawesome/brands/github link: https://github.com/HydroRoll-Team @@ -109,7 +89,7 @@ extra_javascript: copyright: > Copyright © 2013 - PRESENT. HydroRoll-Team – - Change cookie settings + 管ç†Cookie markdown_extensions: - neoteroi.timeline diff --git a/src/main.pdf b/src/main.pdf index 4ec4dd7..17cd01a 100644 Binary files a/src/main.pdf and b/src/main.pdf differ diff --git a/src/main.tex b/src/main.tex index 442d3d9..5ceff2a 100644 --- a/src/main.tex +++ b/src/main.tex @@ -5,7 +5,7 @@ \title{Psi CLI Language} \author{\IEEEauthorblockN{HsiangNianian} \IEEEauthorblockA{\textit{Department of Computer Science} \\ - \textit{University of RBQ U.}\\ + \textit{Founder of Psi}\\ i@jyunko.cn}} \maketitle -- cgit v1.2.3-70-g09d2 From aa4e453e46d6df21991e848b56b52afa72029273 Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Tue, 25 Jul 2023 23:20:14 +0800 Subject: Update index.md --- docs/docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/docs/index.md b/docs/docs/index.md index 246dd18..daba2fd 100644 --- a/docs/docs/index.md +++ b/docs/docs/index.md @@ -9,7 +9,7 @@ hide:

Psi CLI

- Psi 是一个函数å¼ç¼–ç¨‹è¯­è¨€ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªCLI语言,旨在通过人机交互实现指定的功能。该语言的设计目标是简å•ã€æ˜“ç”¨ã€æ˜“å­¦ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªå¤šèŒƒå¼è¯­è¨€ï¼Œæ”¯æŒå‡½æ•°å¼ã€å‘½ä»¤å¼ã€é¢å‘对象ã€é¢å‘过程等多ç§ç¼–程范å¼ã€‚
+ Psi 是一个嵌入å¼ç¼–ç¨‹è¯­è¨€ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªCLI语言,旨在通过人机交互实现指定的功能。该语言的设计目标是简å•ã€æ˜“ç”¨ã€æ˜“å­¦ï¼ŒåŒæ—¶ä¹Ÿæ˜¯ä¸€ä¸ªå¤šèŒƒå¼è¯­è¨€ï¼Œæ”¯æŒå‘½ä»¤å¼ã€é¢å‘对象ã€é¢å‘过程等多ç§ç¼–程范å¼ã€‚
å®ƒæ˜¯éª°ä¸»ä»¥åŠæ’件或模型作者入门水系的关键。 -- cgit v1.2.3-70-g09d2