Sphinx 7 & python 3.11 support
This commit is contained in:
parent
dc2f6d440c
commit
589593ab41
40 changed files with 6644 additions and 5950 deletions
7
CHANGES
7
CHANGES
|
@ -2,6 +2,13 @@
|
|||
Changes
|
||||
=======
|
||||
|
||||
3.0.0 (*2023-08-02*)
|
||||
====================
|
||||
|
||||
- Sphinx 7.x compatibility
|
||||
- Ablog 0.11 compatibility
|
||||
- FontAwesome 6
|
||||
|
||||
2.0.6 (*2022-05-05*)
|
||||
====================
|
||||
|
||||
|
|
|
@ -1,34 +0,0 @@
|
|||
Font Awesome Free License
|
||||
-------------------------
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||
packaged as SVG and JS file types.
|
||||
|
||||
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
# Attribution
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
# Brand Icons
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
165
LICENSE_FOR_FONTAWESOME.txt
Normal file
165
LICENSE_FOR_FONTAWESOME.txt
Normal file
|
@ -0,0 +1,165 @@
|
|||
Fonticons, Inc. (https://fontawesome.com)
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Font Awesome Free License
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
|
||||
The Font Awesome Free download is licensed under a Creative Commons
|
||||
Attribution 4.0 International License and applies to all icons packaged
|
||||
as SVG and JS file types.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Fonts: SIL OFL 1.1 License
|
||||
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
Copyright (c) 2023 Fonticons, Inc. (https://fontawesome.com)
|
||||
with Reserved Font Name: "Font Awesome".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
http://scripts.sil.org/OFL
|
||||
|
||||
SIL OPEN FONT LICENSE
|
||||
Version 1.1 - 26 February 2007
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting — in part or in whole — any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
Copyright 2023 Fonticons, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Attribution
|
||||
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
# Brand Icons
|
||||
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
567
package-lock.json
generated
567
package-lock.json
generated
|
@ -1,567 +0,0 @@
|
|||
{
|
||||
"name": "sphinx_nervproject_theme",
|
||||
"version": "2.0.1",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.12.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
|
||||
"integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"amdefine": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
||||
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
|
||||
},
|
||||
"asap": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
|
||||
"optional": true
|
||||
},
|
||||
"asn1": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
|
||||
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safer-buffer": "~2.1.0"
|
||||
}
|
||||
},
|
||||
"assert-plus": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
||||
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
|
||||
"optional": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"optional": true
|
||||
},
|
||||
"aws-sign2": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
||||
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
|
||||
"optional": true
|
||||
},
|
||||
"aws4": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
|
||||
"integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==",
|
||||
"optional": true
|
||||
},
|
||||
"bcrypt-pbkdf": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
},
|
||||
"caseless": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
||||
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
|
||||
"optional": true
|
||||
},
|
||||
"clean-css": {
|
||||
"version": "3.4.28",
|
||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
|
||||
"integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
|
||||
"requires": {
|
||||
"commander": "2.8.x",
|
||||
"source-map": "0.4.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
||||
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
||||
"requires": {
|
||||
"amdefine": ">=0.0.4"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"clone": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
|
||||
"integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
|
||||
"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
|
||||
"requires": {
|
||||
"graceful-readlink": ">= 1.0.0"
|
||||
}
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"optional": true
|
||||
},
|
||||
"dashdash": {
|
||||
"version": "1.14.1",
|
||||
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
||||
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"optional": true
|
||||
},
|
||||
"ecc-jsbn": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"errno": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
|
||||
"integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"prr": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"optional": true
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
|
||||
"optional": true
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
|
||||
"optional": true
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
"optional": true
|
||||
},
|
||||
"forever-agent": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
|
||||
"optional": true
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"getpass": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
||||
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.4",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
|
||||
"integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==",
|
||||
"optional": true
|
||||
},
|
||||
"graceful-readlink": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
|
||||
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
|
||||
},
|
||||
"har-schema": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
|
||||
"optional": true
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"http-signature": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
||||
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"jsprim": "^1.2.2",
|
||||
"sshpk": "^1.7.0"
|
||||
}
|
||||
},
|
||||
"image-size": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz",
|
||||
"integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=",
|
||||
"optional": true
|
||||
},
|
||||
"is-typedarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
||||
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
|
||||
"optional": true
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
|
||||
"optional": true
|
||||
},
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"optional": true
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
|
||||
"optional": true
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
"optional": true
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
||||
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
|
||||
"optional": true
|
||||
},
|
||||
"jsprim": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
|
||||
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "1.0.0",
|
||||
"extsprintf": "1.3.0",
|
||||
"json-schema": "0.2.3",
|
||||
"verror": "1.10.0"
|
||||
}
|
||||
},
|
||||
"less": {
|
||||
"version": "3.11.3",
|
||||
"resolved": "https://registry.npmjs.org/less/-/less-3.11.3.tgz",
|
||||
"integrity": "sha512-VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==",
|
||||
"requires": {
|
||||
"clone": "^2.1.2",
|
||||
"errno": "^0.1.1",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"image-size": "~0.5.0",
|
||||
"make-dir": "^2.1.0",
|
||||
"mime": "^1.4.1",
|
||||
"promise": "^7.1.1",
|
||||
"request": "^2.83.0",
|
||||
"source-map": "~0.6.0",
|
||||
"tslib": "^1.10.0"
|
||||
}
|
||||
},
|
||||
"less-plugin-clean-css": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/less-plugin-clean-css/-/less-plugin-clean-css-1.5.1.tgz",
|
||||
"integrity": "sha1-zFeveqM5iVflbezr5jy2DCNClwM=",
|
||||
"requires": {
|
||||
"clean-css": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"make-dir": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
|
||||
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"pify": "^4.0.1",
|
||||
"semver": "^5.6.0"
|
||||
}
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
|
||||
"optional": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.44.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
|
||||
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
|
||||
"optional": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.27",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
|
||||
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"mime-db": "1.44.0"
|
||||
}
|
||||
},
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
|
||||
},
|
||||
"oauth-sign": {
|
||||
"version": "0.9.0",
|
||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
||||
"optional": true
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
}
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
|
||||
"integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
|
||||
},
|
||||
"performance-now": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
|
||||
"optional": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
||||
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
|
||||
"optional": true
|
||||
},
|
||||
"promise": {
|
||||
"version": "7.3.1",
|
||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asap": "~2.0.3"
|
||||
}
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
||||
"integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
|
||||
"optional": true
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
|
||||
"integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
|
||||
"optional": true
|
||||
},
|
||||
"punycode": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
"optional": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"optional": true
|
||||
},
|
||||
"request": {
|
||||
"version": "2.88.2",
|
||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
||||
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"aws-sign2": "~0.7.0",
|
||||
"aws4": "^1.8.0",
|
||||
"caseless": "~0.12.0",
|
||||
"combined-stream": "~1.0.6",
|
||||
"extend": "~3.0.2",
|
||||
"forever-agent": "~0.6.1",
|
||||
"form-data": "~2.3.2",
|
||||
"har-validator": "~5.1.3",
|
||||
"http-signature": "~1.2.0",
|
||||
"is-typedarray": "~1.0.0",
|
||||
"isstream": "~0.1.2",
|
||||
"json-stringify-safe": "~5.0.1",
|
||||
"mime-types": "~2.1.19",
|
||||
"oauth-sign": "~0.9.0",
|
||||
"performance-now": "^2.1.0",
|
||||
"qs": "~6.5.2",
|
||||
"safe-buffer": "^5.1.2",
|
||||
"tough-cookie": "~2.5.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
"uuid": "^3.3.2"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
||||
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
|
||||
"optional": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"optional": true
|
||||
},
|
||||
"sfnt2woff": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/sfnt2woff/-/sfnt2woff-1.0.1.tgz",
|
||||
"integrity": "sha512-em3KvF+HvLG0Z+rGlyCx5XdTqlk023a1neiz5p4KvQ1p17rzl9EHUQg+do0f2ZJ3KjbgFu1dZbvZ2l97kW605A==",
|
||||
"requires": {
|
||||
"optimist": "^0.6.1",
|
||||
"pako": "^1.0.6"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"optional": true
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
"bcrypt-pbkdf": "^1.0.0",
|
||||
"dashdash": "^1.12.0",
|
||||
"ecc-jsbn": "~0.1.1",
|
||||
"getpass": "^0.1.1",
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.0.2",
|
||||
"tweetnacl": "~0.14.0"
|
||||
}
|
||||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
||||
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"psl": "^1.1.28",
|
||||
"punycode": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
|
||||
"integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q=="
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
}
|
||||
},
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"optional": true
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"optional": true
|
||||
},
|
||||
"verror": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
||||
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"assert-plus": "^1.0.0",
|
||||
"core-util-is": "1.0.2",
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
|
||||
}
|
||||
}
|
||||
}
|
19
package.json
19
package.json
|
@ -1,17 +1,17 @@
|
|||
{
|
||||
"name": "sphinx_nervproject_theme",
|
||||
"version": "2.0.6",
|
||||
"version": "3.0.0",
|
||||
"description": "Sphinx Nerv Project Theme",
|
||||
"main": "index.js",
|
||||
"directories": {
|
||||
"doc": "docs"
|
||||
},
|
||||
"scripts": {
|
||||
"build:theme-light": "lessc --clean-css='--advanced' ui/theme-light.less sphinx_nervproject_theme/static/theme-light.css",
|
||||
"build:theme-light-hc": "lessc --clean-css='--advanced' ui/theme-light-hc.less sphinx_nervproject_theme/static/theme-light-hc.css",
|
||||
"build:theme-dark": "lessc --clean-css='--advanced' ui/theme-dark.less sphinx_nervproject_theme/static/theme-dark.css",
|
||||
"build:theme-dark-hc": "lessc --clean-css='--advanced' ui/theme-dark-hc.less sphinx_nervproject_theme/static/theme-dark-hc.css",
|
||||
"build:theme-print": "lessc --clean-css='--advanced' ui/theme-print.less sphinx_nervproject_theme/static/theme-print.css",
|
||||
"build:theme-light": "node node_modules/less/bin/lessc --clean-css='--advanced' ui/theme-light.less sphinx_nervproject_theme/static/theme-light.css",
|
||||
"build:theme-light-hc": "node node_modules/less/bin/lessc --clean-css='--advanced' ui/theme-light-hc.less sphinx_nervproject_theme/static/theme-light-hc.css",
|
||||
"build:theme-dark": "node node_modules/less/bin/lessc --clean-css='--advanced' ui/theme-dark.less sphinx_nervproject_theme/static/theme-dark.css",
|
||||
"build:theme-dark-hc": "node node_modules/less/bin/lessc --clean-css='--advanced' ui/theme-dark-hc.less sphinx_nervproject_theme/static/theme-dark-hc.css",
|
||||
"build:theme-print": "node node_modules/less/bin/lessc --clean-css='--advanced' ui/theme-print.less sphinx_nervproject_theme/static/theme-print.css",
|
||||
"build": "npm run build:theme-light && npm run build:theme-light-hc && npm run build:theme-dark && npm run build:theme-dark-hc && npm run build:theme-print"
|
||||
},
|
||||
"repository": {
|
||||
|
@ -19,10 +19,11 @@
|
|||
"url": "git@procrastinator.nerv-project.eu:nerv-project/communication/sphinx_nervproject_theme"
|
||||
},
|
||||
"author": "kujiu",
|
||||
"license": "EUPL 1.2",
|
||||
"license": "EUPL-1.2",
|
||||
"dependencies": {
|
||||
"less": "^3.11.3",
|
||||
"clean-css": "^5.3.2",
|
||||
"less": "^4.2.0",
|
||||
"less-plugin-clean-css": "^1.5.1",
|
||||
"sfnt2woff": "^1.0.1"
|
||||
"sfnt2woff": "*"
|
||||
}
|
||||
}
|
||||
|
|
113
pyproject.toml
Normal file
113
pyproject.toml
Normal file
|
@ -0,0 +1,113 @@
|
|||
[build-system]
|
||||
requires = ["flit_core>=3.2"]
|
||||
build-backend = "flit_core.buildapi"
|
||||
|
||||
[project]
|
||||
name = "sphinx_nervproject_theme"
|
||||
version = "3.0.0"
|
||||
requires-python = ">=3.8"
|
||||
dependencies = [
|
||||
"Sphinx>=7.0.0",
|
||||
"reportlab",
|
||||
"sphinx-fasvg",
|
||||
"ablog>=0.11"
|
||||
]
|
||||
license = {text = "EUPL-1.2"}
|
||||
authors = [
|
||||
{name = "Nerv Project ASBL", email = "contact@nerv-project.eu"},
|
||||
{name = "kujiu"},
|
||||
{name = "ptitgnu"}
|
||||
]
|
||||
maintainers = [
|
||||
{name = "Nerv Project ASBL", email = "contact@nerv-project.eu"},
|
||||
{name = "kujiu"},
|
||||
{name = "ptitgnu"}
|
||||
]
|
||||
description = "A Sphinx-doc theme based on Vuepress"
|
||||
readme = {file = "README.rst", content-type = "text/x-rst"}
|
||||
keywords=["sphinx", "doc", "theme"]
|
||||
classifiers=[
|
||||
"Framework :: Sphinx",
|
||||
"Framework :: Sphinx :: Theme",
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)",
|
||||
"Environment :: Console",
|
||||
"Environment :: Web Environment",
|
||||
"Framework :: Sphinx :: Theme",
|
||||
"Intended Audience :: Developers",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Operating System :: OS Independent",
|
||||
"Topic :: Documentation",
|
||||
"Topic :: Software Development :: Documentation",
|
||||
]
|
||||
|
||||
[project.urls]
|
||||
homepage = "https://www.nerv-project.eu"
|
||||
repository = "https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme"
|
||||
issues = "https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme/issues"
|
||||
editor = "https://www.nerv-project.eu"
|
||||
changelog = "https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme/raw/branch/main/CHANGES.rst"
|
||||
|
||||
[project.optional-dependencies]
|
||||
tests = [
|
||||
"pytest",
|
||||
"flake8",
|
||||
"pylint",
|
||||
"pytest-cov"
|
||||
]
|
||||
setup = [
|
||||
"Sphinx",
|
||||
"pytest-runner",
|
||||
"flake8",
|
||||
"pylint",
|
||||
"babel",
|
||||
"flit",
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
|
||||
[project.entry-points."sphinx.html_themes"]
|
||||
nervproject = "sphinx_nervproject_theme"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
minversion = "6.0"
|
||||
addopts = "-ra -q"
|
||||
testpaths = [
|
||||
"tests",
|
||||
]
|
||||
|
||||
[tool.babel.extract_messages]
|
||||
mapping_file = "babel.cfg"
|
||||
output_file = "locale/sphinx.pot"
|
||||
keywords = ["_", "__", "l_", "lazy_gettext", "gettext", "ngettext"]
|
||||
add_comments = "Translators:"
|
||||
|
||||
[tool.babel.init_catalog]
|
||||
domain = "sphinx"
|
||||
input_file = "locale/sphinx.pot"
|
||||
output_dir = "locale/"
|
||||
|
||||
[tool.babel.update_catalog]
|
||||
domain = "sphinx"
|
||||
input_file = "locale/sphinx.pot"
|
||||
output_dir = "locale/"
|
||||
|
||||
[tool.babel.compile_catalog]
|
||||
domain = "sphinx"
|
||||
directory = "locale/"
|
||||
|
||||
[tool.flit.sdist]
|
||||
include = [
|
||||
"theme.conf",
|
||||
"*.html",
|
||||
"locale/*/LC_MESSAGES/*.mo",
|
||||
"locale/*/LC_MESSAGES/*.po",
|
||||
"util/*.html",
|
||||
"ablog/*.html",
|
||||
"static/*.css",
|
||||
"static/*.js",
|
||||
"static/fonts/luciole/*.woff",
|
||||
"static/fonts/hack/*.woff",
|
||||
"static/fa/*.svg",
|
||||
"static/fa/*.txt",
|
||||
]
|
|
@ -1,4 +0,0 @@
|
|||
Sphinx
|
||||
reportlab
|
||||
sphinx-fasvg
|
||||
ablog
|
28
setup.cfg
28
setup.cfg
|
@ -1,28 +0,0 @@
|
|||
[metadata]
|
||||
description-file = README.rst
|
||||
license-files =
|
||||
LICENSE
|
||||
LICENSE-de
|
||||
LICENSE-fr
|
||||
LICENSE-nl
|
||||
|
||||
|
||||
[extract_messages]
|
||||
mapping_file = babel.cfg
|
||||
output_file = sphinx_nervproject_theme/locale/sphinx.pot
|
||||
keywords = _ __ l_ lazy_gettext gettext ngettext
|
||||
add_comments = Translators:
|
||||
|
||||
[init_catalog]
|
||||
domain = sphinx
|
||||
input_file = sphinx_nervproject_theme/locale/sphinx.pot
|
||||
output_dir = sphinx_nervproject_theme/locale/
|
||||
|
||||
[update_catalog]
|
||||
domain = sphinx
|
||||
input_file = sphinx_nervproject_theme/locale/sphinx.pot
|
||||
output_dir = sphinx_nervproject_theme/locale/
|
||||
|
||||
[compile_catalog]
|
||||
domain = sphinx
|
||||
directory = sphinx_nervproject_theme/locale/
|
85
setup.py
85
setup.py
|
@ -1,85 +0,0 @@
|
|||
from setuptools import setup
|
||||
import distutils
|
||||
|
||||
|
||||
class TranslateCommand(distutils.cmd.Command):
|
||||
description = "Translation"
|
||||
|
||||
user_options = []
|
||||
sub_commands = [
|
||||
('extract_messages', None),
|
||||
('update_catalog', None),
|
||||
('compile_catalog', None),
|
||||
]
|
||||
|
||||
def initialize_options(self):
|
||||
pass
|
||||
|
||||
def finalize_options(self):
|
||||
pass
|
||||
|
||||
def run(self):
|
||||
for cmd_name in self.get_sub_commands():
|
||||
self.run_command(cmd_name)
|
||||
|
||||
|
||||
with open("README.rst", "r") as fh:
|
||||
long_description = fh.read()
|
||||
|
||||
setup(
|
||||
name="sphinx_nervproject_theme",
|
||||
version="2.0.6",
|
||||
url="https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme",
|
||||
license="EUPL 1.2",
|
||||
author="Kujiu",
|
||||
author_email="kujiu-pypi@kujiu.org",
|
||||
description="A Sphinx-doc theme based on Vuepress",
|
||||
long_description=long_description,
|
||||
long_description_content_type="text/x-rst",
|
||||
packages=["sphinx_nervproject_theme"],
|
||||
cmdclass={
|
||||
'translate': TranslateCommand,
|
||||
},
|
||||
package_data={
|
||||
"sphinx_nervproject_theme": [
|
||||
"theme.conf",
|
||||
"*.html",
|
||||
"locale/*/LC_MESSAGES/*.mo",
|
||||
"locale/*/LC_MESSAGES/*.po",
|
||||
"util/*.html",
|
||||
"ablog/*.html",
|
||||
"static/*.css",
|
||||
"static/*.js",
|
||||
"static/fonts/luciole/*.woff",
|
||||
"static/fonts/hack/*.woff",
|
||||
"static/fa/*.svg",
|
||||
"static/fa/*.txt",
|
||||
]
|
||||
},
|
||||
entry_points={"sphinx.html_themes": ["nervproject = sphinx_nervproject_theme"]},
|
||||
install_requires=[
|
||||
"sphinx>=3.0.0",
|
||||
"sphinx-fasvg"
|
||||
],
|
||||
classifiers=[
|
||||
"Framework :: Sphinx",
|
||||
"Framework :: Sphinx :: Theme",
|
||||
"Development Status :: 5 - Production/Stable",
|
||||
"License :: OSI Approved :: European Union Public Licence 1.2 (EUPL 1.2)",
|
||||
"Environment :: Console",
|
||||
"Environment :: Web Environment",
|
||||
"Intended Audience :: Developers",
|
||||
"Programming Language :: Python :: 3",
|
||||
"Programming Language :: Python :: 3.5",
|
||||
"Programming Language :: Python :: 3.6",
|
||||
"Programming Language :: Python :: 3.7",
|
||||
"Operating System :: OS Independent",
|
||||
"Topic :: Documentation",
|
||||
"Topic :: Software Development :: Documentation",
|
||||
],
|
||||
keywords="sphinx doc theme vue.js",
|
||||
project_urls={
|
||||
"Source": "https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme",
|
||||
"Issues": "https://procrastinator.nerv-project.eu/nerv-project/sphinx_nervproject_theme/issues",
|
||||
},
|
||||
)
|
|
@ -5,7 +5,9 @@ from sphinx.environment.collectors import EnvironmentCollector
|
|||
from sphinx import addnodes
|
||||
from sphinx.util.osutil import relative_uri
|
||||
|
||||
__version__ = (2, 0, 6)
|
||||
import pkg_resources
|
||||
__version__ = pkg_resources.get_distribution(__package__).version
|
||||
__version_info__ = tuple(int(v) for v in __version__.split('.'))
|
||||
|
||||
|
||||
class SimpleTocTreeCollector(EnvironmentCollector):
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div class="sidebar-links">
|
||||
<div class="sidebar-group">
|
||||
<a id="mainlogo" href="{{ pathto(master_doc) }}">
|
||||
<img src="{{ pathto('_static/' + logo, 1) }}"
|
||||
<img src="{{ logo_url }}"
|
||||
{% if theme_logoalt %}
|
||||
alt="{{ theme_logoalt }}"
|
||||
{% else %}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
{% if ablog and ablog.archive %}
|
||||
<nav class="sidebar-links">
|
||||
<div class="sidebar-group">
|
||||
<p class="caption"><span class="caption-text"><a href="{{ pathto(ablog.archive.docname) }}">{{ gettext('Archives') }}</a></span></p>
|
||||
<ul class="current">
|
||||
{% for coll in ablog.archive %}
|
||||
{% if coll %}
|
||||
<li class="toctree-l1"><a href="{{ pathto(coll.docname) }}">{{ coll }} ({{ coll|length }})</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div></nav>
|
||||
{% endif %}
|
|
@ -1,10 +0,0 @@
|
|||
{% if ablog and ablog.author %}
|
||||
<p class="caption"><span class="caption-text"><a href="{{ pathto(ablog.author.path) }}">{{ gettext('Authors') }}</a></span></p>
|
||||
<ul class="current">
|
||||
{% for coll in ablog.author %}
|
||||
{% if coll %}
|
||||
<li class="toctree-l1"><a href="{{ pathto(coll.docname) }}">{{ coll }} ({{ coll|length }})</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
|
@ -1,27 +0,0 @@
|
|||
{%- extends "page.html" %}
|
||||
{% block body %}
|
||||
{% for collection in catalog %}
|
||||
{% if collection %}
|
||||
<section class="section" role="feed">
|
||||
|
||||
<h2>
|
||||
{{ header }}
|
||||
<a href="{{ pathto(collection.docname) }}">{{ collection }}</a>
|
||||
</h2>
|
||||
{% for post in collection %}
|
||||
<article class="section">
|
||||
<p>
|
||||
{% if post.published %}
|
||||
{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %}
|
||||
{{ gettext('Draft') }}
|
||||
{% endif %}
|
||||
- <a href="{{ pathto(post.docname) }}{{ anchor(post) }}">{{ post.title }}</a>
|
||||
</p>
|
||||
{% if 0 %}<ul class="ablog-archive">{% include "postcard2.html" %}</ul>{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
</section>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock %}
|
|
@ -1,13 +0,0 @@
|
|||
{% if ablog and ablog.category %}
|
||||
<nav class="sidebar-links">
|
||||
<div class="sidebar-group">
|
||||
<p class="caption"><span class="caption-text"><a href="{{ pathto(ablog.category.path) }}">{{ gettext('Categories') }}</a></span></p>
|
||||
<ul class="current">
|
||||
{% for coll in ablog.category %}
|
||||
{% if coll %}
|
||||
<li class="toctree-l1"><a href="{{ pathto(coll.docname) }}">{{ coll }} ({{ coll|length }})</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div></nav>
|
||||
{% endif %}
|
|
@ -1,54 +0,0 @@
|
|||
{%- extends "page.html" %}
|
||||
{% block body %}
|
||||
<section class="section" role="feed">
|
||||
|
||||
<h1>
|
||||
{% if archive_feed %}
|
||||
<a href="{{ pathto(collection.path, 1) }}/atom.xml"><svg role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""
|
||||
class="fasvg"><use xlink:href="{{ pathto('_static/fa/solid.svg', 1) }}#rss"></use></svg></a>{% endif %}
|
||||
{{ header }}
|
||||
{% if collection.href %}
|
||||
<a href="{{ collection.href }}">{{ collection }}</a>
|
||||
{% else %}
|
||||
{{ collection }}
|
||||
{% endif %}
|
||||
</h1>
|
||||
{% if ablog and ablog.blog_archive_titles %}
|
||||
{% for post in collection %}
|
||||
<article class="section">
|
||||
<p>
|
||||
{% if post.published %}
|
||||
{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %}
|
||||
Draft
|
||||
{% endif %}
|
||||
- <a href="{{ pathto(post.docname) }}{{ anchor(post) }}">{{ post.title }}</a>
|
||||
</p>
|
||||
{% if 0 %}<ul class="ablog-archive">{% include "postcard2.html" %}</ul>{% endif %}
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
{% for post in collection %}
|
||||
|
||||
<article class="section">
|
||||
<h2><a href="{{ pathto(post.docname) }}{{ anchor(post) }}">{{ post.title }}</a></h2>
|
||||
|
||||
<ul class="ablog-archive">
|
||||
<li>{% if post.published %}
|
||||
<svg class="fasvg" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""><use xlink:href="{{ pathto('_static/fa/regular.svg', 1) }}#calendar"></use></svg>
|
||||
{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %}
|
||||
<svg class="fasvg" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""><use xlink:href="{{ pathto('_static/fa/solid.svg', 1) }}#pencil-alt"></use></svg>
|
||||
{% if post.date %}{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %} Draft {% endif %}
|
||||
{% endif %}
|
||||
</li>
|
||||
{% include "postcard2.html" %}</ul>
|
||||
{{ post.to_html(collection.docname) }}
|
||||
<p><a href="{{ pathto(post.docname) }}">{{ _("Read more ...") }}</a></p>
|
||||
<hr>
|
||||
</article>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</section>
|
||||
{% endblock %}
|
|
@ -1,10 +0,0 @@
|
|||
{% if ablog and ablog.language %}
|
||||
<p class="caption"><span class="caption-text"><a href="{{ pathto(ablog.language.path) }}">{{ gettext('Languages') }}</a></span></p>
|
||||
<ul class="current">
|
||||
{% for coll in ablog.language %}
|
||||
{% if coll %}
|
||||
<li class="toctree-l1"><a href="{{ pathto(coll.docname) }}">{{ coll }} ({{ coll|length }})</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
|
@ -67,7 +67,7 @@
|
|||
{%- endif %}
|
||||
{# TODO: opensearch #}
|
||||
{%- if favicon %}
|
||||
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
|
||||
<link rel="shortcut icon" href="{{ favicon_url }}"/>
|
||||
{%- endif %}
|
||||
|
||||
{%- include "util/linktags.html" %}
|
||||
|
@ -82,83 +82,69 @@
|
|||
{%- block container %}
|
||||
{%- block header %}{%- include "util/navbar.html" %}{% endblock %}
|
||||
|
||||
{# This table is necessary for print layout #}
|
||||
<table role="none" id="main_layout_table">
|
||||
<thead>
|
||||
<tr><th><div id="layout_header">
|
||||
</div></th></tr>
|
||||
</thead>
|
||||
<tbody><tr><td>
|
||||
<div id="appflex">
|
||||
{%- block sidebar %}
|
||||
{% if builder=='html' %}
|
||||
<div class="sidebar" id="sidebar">
|
||||
{# sidebar navlinks displayed only on mobile #}
|
||||
<nav class="nav-links can-hide">
|
||||
{% block side_links %}
|
||||
{%- include "util/navlinks.html" %}
|
||||
{%- include "util/extlinks.html" %}
|
||||
{% endblock %}
|
||||
</nav>
|
||||
{%- if sidebars != None %}
|
||||
{%- for sidebartemplate in sidebars %}
|
||||
{%- include sidebartemplate %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{%- endblock %}
|
||||
<div id="appflex">
|
||||
{%- block sidebar %}
|
||||
{% if builder=='html' %}
|
||||
<div class="sidebar" id="sidebar">
|
||||
{# sidebar navlinks displayed only on mobile #}
|
||||
<nav class="nav-links can-hide">
|
||||
{% block side_links %}
|
||||
{%- include "util/navlinks.html" %}
|
||||
{%- include "util/extlinks.html" %}
|
||||
{% endblock %}
|
||||
</nav>
|
||||
{%- if sidebars != None %}
|
||||
{%- for sidebartemplate in sidebars %}
|
||||
{%- include sidebartemplate %}
|
||||
{%- endfor %}
|
||||
{%- endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{%- endblock %}
|
||||
|
||||
<div class="page">
|
||||
{%- block document %}
|
||||
{% block body_header %}
|
||||
{%- include "util/bodyheader.html" %}
|
||||
{%- endblock body_header %}
|
||||
<main class="content">
|
||||
{% block body %} {% endblock %}
|
||||
{% if builder=='html' %}
|
||||
<div class="section no-print">
|
||||
{% if ablog and pagename in ablog %}
|
||||
{% include "postnavy.html" %}
|
||||
{% include "share.html" %}
|
||||
{% else %}
|
||||
{% if ablog and theme_share_all %}
|
||||
{% include "share.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if ablog and ablog.disqus_shortname and ablog.blog_baseurl and
|
||||
(not ablog[pagename].nocomments) and
|
||||
((pagename in ablog and (ablog[pagename].published or
|
||||
ablog.disqus_drafts)) or
|
||||
(not pagename in ablog and ablog.disqus_pages)) %}
|
||||
{% include "util/disqus.html" %}
|
||||
{% endif %}
|
||||
{% if ablog and theme_isso and
|
||||
<div class="page">
|
||||
{%- block document %}
|
||||
{% block body_header %}
|
||||
{%- include "util/bodyheader.html" %}
|
||||
{%- endblock body_header %}
|
||||
<main class="content">
|
||||
{% block body %} {% endblock %}
|
||||
{% if builder=='html' %}
|
||||
<div class="section no-print">
|
||||
{% if ablog and pagename in ablog %}
|
||||
{% include "share.html" %}
|
||||
{% else %}
|
||||
{% if ablog and theme_share_all %}
|
||||
{% include "share.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if ablog and ablog.disqus_shortname and ablog.blog_baseurl and
|
||||
(not ablog[pagename].nocomments) and
|
||||
((pagename in ablog and (ablog[pagename].published or
|
||||
ablog.disqus_drafts)) or
|
||||
(not pagename in ablog and ablog.disqus_pages)) %}
|
||||
<section class="comments no-print" id="comments">
|
||||
<h2 class="panel">{{ _("Comments") }}</h2>
|
||||
<section id="isso-thread"
|
||||
data-isso-id="{{ pagename }}"
|
||||
data-title="{{ title }}">
|
||||
</section>
|
||||
</section>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</main>
|
||||
{%- endblock %}
|
||||
{%- include "util/pagenav.html" %}
|
||||
</div>
|
||||
</div>
|
||||
</td></tr></tbody>
|
||||
<tfoot>
|
||||
<tr><th><div id="layout_footer">
|
||||
</div></th></tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
(not pagename in ablog and ablog.disqus_pages)) %}
|
||||
{% include "util/disqus.html" %}
|
||||
{% endif %}
|
||||
{% if ablog and theme_isso and
|
||||
(not ablog[pagename].nocomments) and
|
||||
((pagename in ablog and (ablog[pagename].published or
|
||||
ablog.disqus_drafts)) or
|
||||
(not pagename in ablog and ablog.disqus_pages)) %}
|
||||
<section class="comments no-print" id="comments">
|
||||
<h2 class="panel">{{ _("Comments") }}</h2>
|
||||
<section id="isso-thread"
|
||||
data-isso-id="{{ pagename }}"
|
||||
data-title="{{ title }}">
|
||||
</section>
|
||||
</section>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</main>
|
||||
{%- endblock %}
|
||||
{%- include "util/pagenav.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{%- block footer %}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{% if ablog and ablog.location %}
|
||||
<p class="caption"><span class="caption-text"><a href="{{ pathto(ablog.location.path) }}">{{ gettext('Locations') }}</a></span></p>
|
||||
<ul class="current">
|
||||
{% for coll in ablog.location %}
|
||||
{% if coll %}
|
||||
<li class="toctree-l1"><a href="{{ pathto(coll.docname) }}">{{ coll }} ({{ coll|length }})</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
|
@ -1,8 +0,0 @@
|
|||
{% extends "!layout.html" %}
|
||||
{% block extrahead %}
|
||||
{{ super() }}
|
||||
{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{{ body }}
|
||||
{% endblock %}
|
|
@ -1,14 +0,0 @@
|
|||
{% if ablog and pagename in ablog %}
|
||||
<div class="sidebar-links">
|
||||
<div class="sidebar-group">
|
||||
{% set post = ablog[pagename] %}
|
||||
|
||||
<p class="caption">
|
||||
<span class="caption-text">{{ gettext('About this page') }}</span>
|
||||
</p>
|
||||
|
||||
<ul class="current">
|
||||
{% include "postcard2.html" %}
|
||||
</ul>
|
||||
</div></div>
|
||||
{% endif %}
|
|
@ -1,87 +0,0 @@
|
|||
<li ><dl class="navdl">
|
||||
<dt>{{ gettext('Date') }}</dt>
|
||||
<dd>
|
||||
{% if post.published %}
|
||||
<svg class="fasvg" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""><use xlink:href="{{ pathto('_static/fa/regular.svg', 1) }}#calendar"></use></svg>
|
||||
{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %}
|
||||
<svg class="fasvg" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""><use xlink:href="{{ pathto('_static/fa/solid.svg', 1) }}#pencil-alt"></use></svg>
|
||||
{% if post.date %}{{ post.date.strftime(ablog.post_date_format) }}
|
||||
{% else %} {{ gettext('Draft') }} {% endif %}
|
||||
{% endif %}</dd>
|
||||
</dl></li>
|
||||
<li id="published" ><dl class="navdl">
|
||||
<dt>{{ gettext('Published') }}</dt>
|
||||
<dd>
|
||||
{% if post.published and post.date != post.update %}
|
||||
<svg class="fasvg" role="img" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:title=""><use xlink:href="{{ pathto('_static/fa/solid.svg', 1) }}#pencil-alt"></use></svg> {{ gettext('Update') }}:
|
||||
{{ post.update.strftime(ablog.post_date_format) }}
|
||||
{% endif %}
|
||||
</dd></dl></li>
|
||||
|
||||
<li id="author"><dl class="navdl">
|
||||
<dt>{{ gettext('Author(s)') }}</dt>
|
||||
<dd>
|
||||
{% if post.author %}
|
||||
<i class="fa-fw fa fa-user"></i>
|
||||
{% for coll in post.author %}
|
||||
{% if coll|length %}
|
||||
<a href="{{ pathto(coll.docname) }}">{{ coll }}</a>{% if loop.index < post.author|length %},{% endif %}
|
||||
{% else %}{{ coll }}{% if loop.index < post.author|length %},{% endif %}{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</dd>
|
||||
</dl></li>
|
||||
|
||||
<li id="location"><dl class="navdl">
|
||||
<dt>{{ gettext('Location') }}</dt>
|
||||
<dd>
|
||||
{% if post.location %}
|
||||
<i class="fa-fw fa fa-location-arrow"></i>
|
||||
{% for coll in post.location %}
|
||||
{% if coll|length %}
|
||||
<a href="{{ pathto(coll.docname) }}">{{ coll }}</a>{% if loop.index < post.location|length %},{% endif %}
|
||||
{% else %}{{ coll }}{% if loop.index < post.location|length %},{% endif %}{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</dd></dl></li>
|
||||
|
||||
{% if post.language %}
|
||||
<li id="language"><dl class="navdl">
|
||||
<dt>{{ gettext('Language') }}</dt>
|
||||
<dd>
|
||||
<i class="fa-fw fa fa-language"></i>
|
||||
{% for coll in post.language %}
|
||||
{% if coll|length %}
|
||||
<a href="{{ pathto(coll.docname) }}">{{ coll }}</a>{% if loop.index < post.language|length %},{% endif %}
|
||||
{% else %}{{ coll }}{% if loop.index < post.language|length %},{% endif %}{% endif %}
|
||||
{% endfor %}
|
||||
</dd></dl></li>
|
||||
{% endif %}
|
||||
|
||||
<li id="category"><dl class="navdl">
|
||||
<dt> {{ gettext('Category') }}</dt>
|
||||
<dd>
|
||||
{% if post.category %}
|
||||
<i class="fa-fw fa fa-folder-open"></i>
|
||||
{% for coll in post.category %}
|
||||
{% if coll|length %}
|
||||
<a href="{{ pathto(coll.docname) }}">{{ coll }}</a>{% if loop.index < post.category|length %},{% endif %}
|
||||
{% else %}{{ coll }}{% if loop.index < post.category|length %},{% endif %}{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||