浏览代码

Initial commit

main
PatricZhao 3 年前
当前提交
8d81592b82
共有 44 个文件被更改,包括 8874 次插入0 次删除
  1. +22
    -0
      .asf.yaml
  2. +10
    -0
      .editorconfig
  3. +89
    -0
      .github/workflows/lint.yml
  4. +6
    -0
      .gitignore
  5. +16
    -0
      .markdownlint.yaml
  6. +9
    -0
      .yamllint
  7. +202
    -0
      LICENSE
  8. +5
    -0
      NOTICE
  9. +14
    -0
      README.md
  10. +114
    -0
      asfdata.yaml
  11. +3
    -0
      content/.htaccess
  12. +1
    -0
      content/README.md
  13. +3
    -0
      content/archive.ezmd
  14. +23
    -0
      content/blogs.ezmd
  15. +6
    -0
      content/board.ezmd
  16. +3
    -0
      content/closer.ezmd
  17. +8
    -0
      content/committees.ezmd
  18. +1
    -0
      content/docs/dir_1/test1.txt
  19. +1
    -0
      content/docs/dir_2/test1.txt
  20. +1
    -0
      content/docs/test1.txt
  21. +18
    -0
      content/downloads.ezmd
  22. +20
    -0
      content/eccn.ezmd
  23. +237
    -0
      content/faq.md
  24. +13
    -0
      content/featured.ezmd
  25. 二进制
      content/images/logo.png
  26. +383
    -0
      content/images/logo.svg
  27. +34
    -0
      content/include/archive.ezt
  28. +67
    -0
      content/include/closer.ezt
  29. +37
    -0
      content/index.ezmd
  30. +6
    -0
      content/links.md
  31. +25
    -0
      content/mentors.md
  32. +11
    -0
      content/project_list.ezmd
  33. +8
    -0
      content/projects.ezmd
  34. +53
    -0
      content/projects/cookbook.md
  35. +4
    -0
      content/projects/projects.snippet
  36. +9
    -0
      content/tweets.ezmd
  37. +4348
    -0
      data/eccn/eccnmatrix.json
  38. +2699
    -0
      data/eccn/eccnmatrix.yaml
  39. +35
    -0
      pelicanconf.yaml
  40. +6
    -0
      requirements.txt
  41. +8
    -0
      shell.sh
  42. +38
    -0
      theme/apache/templates/README.md
  43. +213
    -0
      theme/apache/templates/base.html
  44. +65
    -0
      theme/apache/templates/styles.css

+ 22
- 0
.asf.yaml 查看文件

@ -0,0 +1,22 @@
# See: https://cwiki.apache.org/confluence/display/INFRA/git+-+.asf.yaml+features
github:
features:
# Enable issue management
issues: true
notifications:
commits: wave@apache.org
issues: wave@apache.org
pullrequests: wave@apache.org
pelican:
notify: wave@apache.org
autobuild: preview/*
target: asf-site
theme: theme/apache
whoami: main
staging:
profile: ~
whoami: asf-site
autostage: preview/*

+ 10
- 0
.editorconfig 查看文件

@ -0,0 +1,10 @@
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true

+ 89
- 0
.github/workflows/lint.yml 查看文件

@ -0,0 +1,89 @@
name: Lint
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
tags:
description: 'Perform Lint Check'
jobs:
flake8:
name: Flake8
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --ignore=E201,E501,W605 --show-source --statistics
markdownlint:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
node_version:
- 14
architecture:
- x64
name: Markdown Node ${{ matrix.node_version }} - ${{ matrix.architecture }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node_version }}
architecture: ${{ matrix.architecture }}
- run: npm install -g markdownlint-cli@0.27.1
- run: markdownlint '**/*.md'
misspell:
name: Check Spelling
runs-on: ubuntu-latest
steps:
- name: Check Out
uses: actions/checkout@v2
- name: Install
run: |
wget -O - -q https://git.io/misspell | sh -s -- -b .
- name: Misspell
run: |
git ls-files --empty-directory | xargs ./misspell -error
trailing-whitespace:
name: Trailing whitespace
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check for trailing whitespace
run: "! git grep -EIn $'[ \t]+$'"
yamllint:
name: YAML
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: '3.x' # Version range or exact version of a Python version to use, using SemVer's version range syntax
architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install yamllint
- name: YAML Lint
run: |
yamllint --strict .

+ 6
- 0
.gitignore 查看文件

@ -0,0 +1,6 @@
*.pyc
*.swp
__pycache__
pelican.auto.py
site-generated/
.authtokens

+ 16
- 0
.markdownlint.yaml 查看文件

@ -0,0 +1,16 @@
# https://github.com/DavidAnson/markdownlint#rules--aliases
# MD004 ul-style - Unordered list style
MD004: false
# MD013 line-length - Line length
MD013: false
# MD033 no-inline-html - Inline HTML
MD033: false
# MD034 no-bare-urls - Bare URL used
MD034: false
# MD041 first-line-heading/first-line-h1
MD041: false

+ 9
- 0
.yamllint 查看文件

@ -0,0 +1,9 @@
---
extends: default
rules:
colons: disable
document-start: disable
line-length: disable
truthy: disable

+ 202
- 0
LICENSE 查看文件

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

+ 5
- 0
NOTICE 查看文件

@ -0,0 +1,5 @@
Apache Template
Copyright 2021 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

+ 14
- 0
README.md 查看文件

@ -0,0 +1,14 @@
# Apache Template
[Apache Template](https://template.staged.apache.org/)
This repository provides a website template for [ASF-Pelican](https://infra.apache.org/asf-pelican.html). That page, and pages linked from it, provide extensive documentation on how to deploy the template.
Pelican build site infrastructure is found [here](https://github.com/apache/infrastructure-pelican). (WIP)
If you use this template for your project website and provide a [logo](https://www.apache.org/logos/) then
your project should pass "[Apache Project Website Checks](https://whimsy.apache.org/site/)".
## How to use this template
Follow the [Getting started guide](https://infra.apache.org/asf-pelican-gettingstarted.html).

+ 114
- 0
asfdata.yaml 查看文件

@ -0,0 +1,114 @@
# key-value pairs - examples
test1: 'test id'
test2: 'testing 1, 2, 3'
#
# data sources to slurp and sequence
# index.ezmd
# foundation/index.ezmd
# foundation/board/index.ezmd
# licenses/exports/index.ezmd
ci:
# load, transform, and create data sequences from committee info
url: https://whimsy.apache.org/public/committee-info.json
board:
# used on /foundation/ and /foundation/board/
description: 'Board of Directors sequence'
# select ci['board']['roster'] for the sequence
path: board.roster
officers:
description: 'Foundation Officers sequence'
# select ci['officers'] for the sequence
path: officers
# convert ci['officers']['roster']
asfid: roster
committees:
description: 'Foundation Committees sequence'
# ci['committees']
path: committees
# remove all report and roster dictionaries from committees
trim: report,roster
# convert ci['committees']['chair']
asfid: chair
ci:
# used on /foundation/
description: 'Dictionary of officers and committees'
# save a merged dictionary version of these sequences.
dictionary: officers,committees
projects:
description: 'Current Projects'
# ci['committees']
path: committees
# select only where 'pmc' is true.
where: pmc
# sort by project name
alpha: display_name
featured_projs:
# used on /
description: 'Featured Projects'
# base on projects sequence
sequence: projects
# take a random sample of 3
random: 3
# logo path - use apache powered by if missing
logo: /logos/res/{}/default.png,/foundation/press/kit/poweredBy/Apache_PoweredBy.svg
pl:
# used on /
description: 'Project List Columns'
# base on projects sequence
sequence: projects
# split into 6 column sequence adding letters of the alphabet and putting httpd first
split: 6
#
# used on index.ezmd
pods:
# load, transform, and create data sequences from podling info
url: https://projects.apache.org/json/foundation/podlings.json
podlings:
description: 'Current Podlings'
# create a sequence from the dictionary
featured_pods:
description: 'Featured Podlings'
# based on the podlings sequence
sequence: podlings
# take a random sample of 3
random: 3
# logo path - use incubator if missing. Strip "Apache" and "(incubator)" from name.
logo: /logos/res/{}/default.png,/logos/res/incubator/default.png
#
# used on licenses/exports/index.ezmd
eccn:
# load, transform, and create a four tiered structure of sequence objects
# projects, products, versions, and sources
file: data/eccn/eccnmatrix.yaml
#
# used on index.ezmd
twitter:
# load, transform, and create a sequence of tweets
handle: 'TheASF'
count: 1
#
# used on index.ezmd
foundation:
# load, transform, and create a sequence of foundation blogs
blog: https://blogs.apache.org/foundation/feed/entries/atom
count: 3
content: 44
#
# used on index.ezmd
planet:
# load, transform, and create a sequence of foundation blogs
blog: https://blogs.apache.org/planet/feed/entries/atom
count: 1
#
# used on index.ezmd
conferences:
# load, transform, and create a sequence of foundation blogs
blog: https://blogs.apache.org/conferences/feed/entries/atom
count: 1
#
# used on downloads.ezmd
release:
# load a sequence of release distributions
release: hadoop
src: src
revision: True

+ 3
- 0
content/.htaccess 查看文件

@ -0,0 +1,3 @@
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

+ 1
- 0
content/README.md 查看文件

@ -0,0 +1 @@
This is the top level of the content tree

+ 3
- 0
content/archive.ezmd 查看文件

@ -0,0 +1,3 @@
Title: Apache Download Mirrors
[insertfile "include/archive.ezt"]

+ 23
- 0
content/blogs.ezmd 查看文件

@ -0,0 +1,23 @@
Title: Blogs
version: 1.0
<!-- Licensed under ALv2 -->
### Foundation
[for foundation]
#### Post
[[][foundation.title]]([foundation.href])
[format "raw"][foundation.content][end]
[end]
### Planet
[for planet]
[[][planet.title]]([planet.href])
[end]
### Conferences
[for conferences]
[[][conferences.title]]([conferences.href])
[end]

+ 6
- 0
content/board.ezmd 查看文件

@ -0,0 +1,6 @@
Title: Apache Board of Directors
version: 1.0
<!-- Licensed under ALv2 -->
[for board]
- [[][board.name]](mailto:[board.key_id]@apache.org)[end]

+ 3
- 0
content/closer.ezmd 查看文件

@ -0,0 +1,3 @@
Title: Apache Download Mirrors
[insertfile "include/closer.ezt"]

+ 8
- 0
content/committees.ezmd 查看文件

@ -0,0 +1,8 @@
Title: Apache Committees
version: 1.0
<!-- Licensed under ALv2 -->
| Committee | Chair | Paragraph |
| ----------- | ----------- | ----------- |
[for committees][if-any committees.pmc][else]| [committees.display_name] | [committees.chair] | [committees.paragraph] |
[end][end]

+ 1
- 0
content/docs/dir_1/test1.txt 查看文件

@ -0,0 +1 @@
Test file

+ 1
- 0
content/docs/dir_2/test1.txt 查看文件

@ -0,0 +1 @@
Test file

+ 1
- 0
content/docs/test1.txt 查看文件

@ -0,0 +1 @@
Test file

+ 18
- 0
content/downloads.ezmd 查看文件

@ -0,0 +1,18 @@
Title: Download Releases
# Releases
[[]TOC]
## Keys
[[]KEYS]([release-keys])
[for release]
## [release.name]
[for release.release]* [[][release.release.release]](https://www.apache.org/dyn/closer.lua/[release-project]/[release.version]/[release.release.release])
-- ([[]signature](https://downloads.apache.org/[release-project]/[release.version]/[release.release.signature]))
-- ([[]checksum](https://downloads.apache.org/[release-project]/[release.version]/[release.release.checksum]))
-- ([release.release.fsize])
-- ([release.release.dtm])
[end][end]

+ 20
- 0
content/eccn.ezmd 查看文件

@ -0,0 +1,20 @@
Title: Export Notification
version: 1.0
asf_headings: False
<!-- Licensed under ALv2 -->
## Structure
We have ECCN.
### Project -- Contact
- Product
- Version / ECCN Classification / Controlled Sources
## Project Notifications
[for eccn]
### [[][eccn.name]]([eccn.href])[if-any eccn.contact] -- [eccn.contact][end]
[if-any eccn.product][for eccn.product] - [eccn.product.name]
[for eccn.product.versions] - [eccn.product.versions.version] / [eccn.product.versions.eccn]
[for eccn.product.versions.source] / [[][eccn.product.versions.source.manufacturer]]([eccn.product.versions.source.href] "[eccn.product.versions.source.why]")
[end][end][end][end][end]

+ 237
- 0
content/faq.md 查看文件

@ -0,0 +1,237 @@
Title: Apache Petri - FAQ
source_button: yes
<!-- Licensed under ALv2 -->
[TOC]
# General
## What is Apache Petri?
The Apache Petri (as in “petri dish” –where cultures are grown and bloom) committee
assists external project communities interested in becoming an Apache project to
learn how The Apache Software Foundation (ASF) works, its views on community, and
how to build a healthy community for the long -term.
Petri’s mission is to mentor existing external communities (“cultures”) about
“The Apache Way” by focusing on community governance that includes discussions
about ASF policies. The mentoring and education is conducted on a mailing list.
The primary goal is to reach a point where a recommendation to the ASF Board can
be made to construct a new Apache Project Management Committee (PMC) for the
external community.
In the Incubator model, projects graduate to become Apache Top-Level Projects (TLPs).
Under Petri, projects can become TLPs under a process described as “direct to TLP”,
which is an alternative path to that used by the Apache Incubator. Apache Petri aims
to shepherd projects and their communities to a point of confidence that the
ASF Board will welcome the community to the Apache family of projects as a
Top-Level Project.
## How is Petri different from the Apache Incubator?
Apache Petri provides an alternative process to Incubation that would be suitable
for some projects and their communities. Petri provides educational resources, and
mentors external groups on their path to becoming an official project of the ASF.
The primary goal is to reach a point where a recommendation to the ASF Board can
be made to construct a PMC for the community.
“Podlings” in the Apache Incubator are provided a complete set of Foundation-based
resources upon their acceptance into the Incubator. Since Petri will begin
mentoring the community “where they live”, it will not provide an initial set of
resources. Over time, as part of the education process and shift of the community
towards the Foundation, resources will be provided as appropriate. It is expected
that once a PMC is constructed, any resources not hosted at the Foundation will
be the new PMC’s first order of business (i.e. a transition plan would be part of
the presentation to the Board).
<h2 id="whats-special">Why does this matter? What is special about The Apache Way?
<a class="headerlink" href="#whats-special" title="Permanent link"></a></h2>
The Apache Way is the ASF’s process of community-led development is the backbone
of all Apache projects, and emulated by many Open Source foundations. The Apache
Way comprises:
* Earned Authority (merit);
* Community of Peers;
* Open Communications;
* Consensus Decision Making; and
* Responsible Oversight.
For more information, see [The Apache Way](https://www.apache.org/theapacheway/).
The Apache Software Foundation's mission is to provide software for the public good.
Quoting from [The Apache Way to Sustainable Open Source Success](https://s.apache.org/GhnI):
> To allow us to deliver on this part of the mission, it is critical that we adopt a
> license that uses the law to protect the software curated here at the Foundation.
> For us that license is the [Apache License, Version 2](https://www.apache.org/licenses/LICENSE-2.0.html).
> In addition, we adopt an [inbound licensing policy](https://apache.org/legal/resolved.html)
> that defines which licenses are allowable on software reused within Apache projects. This policy can be summarized as:
>
> * The license must meet the [Open Source Definition (OSD)](https://opensource.org/osd).
> * The license, as applied in practice, must not impose significant restrictions beyond those imposed by the Apache License 2.0.
## What does “Direct to TLP” entail?
The Board makes the ultimate decision, and generally ensures that the project has:
* Demonstrated
[vendor neutrality](https://community.apache.org/projectIndependence.html)
in the
[community](https://incubator.apache.org/guides/community.html);
* Demonstrated understanding of the
[Apache Release Policy](https://www.apache.org/legal/release-policy.html)
including [Applying the Apache License](https://infra.apache.org/apply-license.html);
* Completed
[Contributor Licence Agreements and Software Grant Agreements](https://www.apache.org/licenses/contributor-agreements.html);
* Performed a
[Suitable Name Search](https://incubator.apache.org/guides/names.html);
* Developed a
[Transition Plan](https://incubator.apache.org/guides/transitioning_asf.html)
to move the project's resources to the ASF;
* Shown how the community will
[recognize merit](https://incubator.apache.org/guides/community.html); and
* Shown auditable decision making on the provided mailing list.
## Is Apache Petri right for you?
If you are:
* An established, diverse community that already releases quickly; or
* A project with a single “leader” that seeks to grow to a community-driven
development model; or
* A company that has an Open Source project with other vendors and wants to
expand and diversify its community...
And you are:
* Willing to license your project's works under the [Apache License, Version 2](https://www.apache.org/licenses/LICENSE-2.0.html).
Petri would help the community learn how to integrate governance and
development “The Apache Way” without interrupting the project’s velocity.
In keeping with the ASF’s slogan of “Community Over Code”, we are unable to
accept projects that are not supported by some form of community.
# Process
## What about the Maturity Model? Have other projects bypassed incubation by meeting these requirements?
In March 2015 Apache Zest (now Polygene) became the first project to enter
the ASF as a Top-Level Project &mdash; without entering the Apache Incubator. As
part of the discussion, the project
[chose to review itself](https://mail-private.apache.org/members/private-arch/board/201502.mbox/%3CCADmm%2BKf9A1O%2B%3DKOd9__sDF2-kMh9b3iy3cf4NCRUnSDOPDq92w%40mail.gmail.com%3E)
(private link) against the
[Apache Maturity Model](http://s.apache.org/O4p), that addresses the integrity
of a project's code, copyright, licenses, releases, community, consensus
building, and independence, among other qualities.
The Apache Maturity Model will not be a requirement for communities (as the
Model does not have broad consensus as a true and thorough viewpoint), but
the Model may provide a helpful guide for some.
## How long does the Petri process take?
There’s no “one size fits all” answer here. Some external projects have
applied to the Apache Board to become TLPs, and have become TLPs without
going through either Petri or the Incubator. Historically, every project’s
experience and time spent in the Apache Incubator varies, depending on its
specific needs and circumstances; this has ranged from less than one year
to more than three years.
Similarly, some projects undergoing Petri mentorship will take longer
than others. Petri is more about education about The Apache Way of project
governance and Apache Policy, and less about process.
## Do people involved in Petri-mentored projects need to sign ICLAs?
No, unless the projects intend to apply for TLP status and migrate their
source control to ASF hardware. This applies both to Incubator podlings
and direct-to-TLP applicants.
## If our project wants to become an official Apache project, what is the best way to do so?
There is more than one way to do so: not all incoming projects will be
mentored by Petri. Traditionally, the Apache Incubator has been the entry
path for external projects, codebases, and communities wishing to become
a part of the ASF.
Petri's primary goal is preparing a community for Direct-to-TLP; moving
from Petri to become a podling undergoing development in the Apache Incubator
is a possibility, but not mandated.
## If I propose my project to be mentored by Petri, will it be accepted?
That depends. First, there have to be available mentors. Second, the Petri
PMC may have to rate-limit intake, especially at first, in order not to
stretch itself too thin with its oversight duties. This is true of the
entire ASF: the Board may put intake of new TLPs on hold from time to
time, though it has never yet done that to date.
## What is the expected intake rate for Petri?
We anticipate 2-3 communities in the first year, with one per year likely following that.
## What should the Board expect from a Project that Petri Recommends to become a TLP?
This list is only complete in that we are considering what the Board
currently seems to require and it is as always up to the Board the
requirements for any particular TLP. In addition to the list of
items shared above, in the **What does “Direct to TLP” entail** section:
* **Graduation Resolution**. If there are Apache Members involved or
recruited then they will be included in the resolution. Apache
Members like anyone else are certainly invited to contribute
to the project.
* **Transfer of Registered Trademarks**. If there are any registered
trademarks then the transfer agreement will be discussed with
the VP, Brand in advance.
* **Software Grant**. Petri should collect [software grants](https://www.apache.org/licenses/contributor-agreements.html#grants).
* **Committers**. Petri can collect ICLAs in advance of going to TLP.
Petri can make the committers from a prospective community
Petri committers in order to create accounts.
* **Resources**. Graduation proposals will include a **Transition Plan**
explaining the actions that the project has already taken or intends to take once
the PMC is established. This may include:
* Creating Apache project mailing lists
* Creating Apache issue trackers
* Creating Apache wikis
* Creating Apache code repositories
* Migrating code repositories to Apache
* Applying the Apache License
* Creating Apache web presence
* Migrating web presence from Project to Apache
* Rebranding web, code, documentation from Project to Apache Project
* Retiring external Project and redirecting to Apache
* Creating and migrating CI, build, release processes to Apache Project
* Establish processes for release distribution at Apache
* New TLPs should report on their progress towards completing
their Transition Plan in their Board Reports.
## Who will provide guidance once the Petri mentor is gone after the assessment?
This assumes that the Mentor is no longer interested in the community
once it is assessed. Even if this were true TLPs have a range of Apache
committees and resources available. If necessary the Board can provide
additional guidance through the normal reporting process as the Board
does for every PMC.
## How can our project/community apply for Apache Petri mentorship?
Email discuss@petri.apache.org (public list; if you're not subscribe,
ask explicitly to be Cc'd on replies)
or private@petri.apache.org (private list, only Apache Petri PMC members
and Apache Members can subscribe) and introduce yourself! We don’t
have any forms or questionnaires, but may introduce these should
the need arise.
## If a project wants to move out of the Apache Incubator and into Petri, what happens?
We don’t recommend leaving the Incubator, if the podling is already
established there; podlings should strive to graduate. In the event
a community is unwilling to wait for graduation, and Petri has
accepted them, then the Incubator will need to retire the podling.
Petri will then take responsibility for the podling’s resources, and
perform any needed changes to make that happen.

+ 13
- 0
content/featured.ezmd 查看文件

@ -0,0 +1,13 @@
Title: Featured
version: 1.0
<!-- Licensed under ALv2 -->
## Projects
[for featured_projs]
<img alt="Logo" width="100" src="https://www.apache.org/[featured_projs.logo]"/> [[]Apache [featured_projs.display_name]]([featured_projs.site])
[end]
## Podlings
[for featured_pods]
<img alt="Logo" width="100" src="https://www.apache.org/[featured_pods.logo]"/> [[]Apache [featured_pods.name]]([featured_pods.homepage])
[end]

二进制
content/images/logo.png 查看文件

之前 之后
宽度: 1032  |  高度: 1032  |  大小: 44 KiB

+ 383
- 0
content/images/logo.svg
文件差异内容过多而无法显示
查看文件


+ 34
- 0
content/include/archive.ezt 查看文件

@ -0,0 +1,34 @@
<h1 id="verify">Verify the integrity of the files<a class="headerlink" href="#verify" title="Permanent link">&para;</a></h1>
<p>It is essential that you verify the integrity of the downloaded file using
the PGP signature (<code>.asc</code> file) or a hash (<code>.md5</code> or <code>.sha*</code> file). Please read <a href="/info/verification.html">Verifying Apache Software
Foundation Releases</a> for more information on why
you should verify our releases.</p>
<p>The PGP signature can be verified using PGP or GPG. First download the
<code>KEYS</code> as well as the <code>asc</code> signature file for the relevant distribution.
Make sure you get these files from the main distribution site, rather than
from a mirror. Then verify the signatures using</p>
<div class="codehilite"><pre><span class="c">% gpg --import KEYS</span>
<span class="c">% gpg --verify downloaded_file.asc downloaded_file</span>
</pre></div>
<p><em>or</em></p>
<div class="codehilite"><pre><span class="c">% pgpk -a KEYS</span>
<span class="c">% pgpv downloaded_file.asc</span>
</pre></div>
<p><em>or</em></p>
<div class="codehilite"><pre><span class="c">% pgp -ka KEYS</span>
<span class="c">% pgp downloaded_file.asc</span>
</pre></div>
<p>Alternatively, you can verify the MD5 hash on the file. A unix
program called <code>md5</code> or <code>md5sum</code> is included in many unix distributions. It
is also available as part of
<a href="http://www.gnu.org/software/textutils/textutils.html">GNU Textutils</a>.
Windows users can get binary md5 programs from
<a href="http://www.fourmilab.ch/md5/">here</a>,
<a href="http://www.pc-tools.net/win32/freeware/console/">here</a> , or
<a href="http://www.slavasoft.com/fsum/">here</a>.</p>

+ 67
- 0
content/include/closer.ezt 查看文件

@ -0,0 +1,67 @@
<p>[if-any logo] <a href="[link]"><img alt="[logo]" src="[logo]" /></a> [end] We suggest the following mirror
site for your download:</p>
<p><a href="[preferred][path_info]"><strong>[preferred][path_info]</strong></a> </p>
<p>Other mirror sites are suggested below.</p>
<p>It is essential that you <a href="#verify">verify the integrity</a> of the downloaded file using
the PGP signature (<code>.asc</code> file) or a hash (<code>.md5</code> or <code>.sha*</code> file).</p>
<p>Please only use the backup mirrors to download KEYS, PGP signatures and hashes (SHA* etc)
-- or if no other mirrors are working.</p>
<p>[if-any http]</p>
<h1 id="http">HTTP<a class="headerlink" href="#http" title="Permanent link">&para;</a></h1>
<p>[for http] <a href="[http][path_info]"><strong>[http][path_info]</strong></a> <br></br>[end]</p>
<p>[end]</p>
<p>[if-any ftp]</p>
<h1 id="ftp">FTP<a class="headerlink" href="#ftp" title="Permanent link">&para;</a></h1>
<p>[for ftp] <a href="[ftp][path_info]"><strong>[ftp][path_info]</strong></a> <br></br>[end]</p>
<p>[end]</p>
<h1 id="backup">Backup Sites<a class="headerlink" href="#backup" title="Permanent link">&para;</a></h1>
<p>Please only use the backup mirrors to download KEYS, PGP signatures and hashes (SHA* etc)
-- or if no other mirrors are working.</p>
<p>[if-any backup] [for backup] <a href="[backup][path_info]"><strong>[backup][path_info]</strong></a> <br></br>[end] [end]</p>
<p>The <a href="http://www.apache.org/mirrors/">full listing of mirror sites</a> is also
available.</p>
<h1 id="become">Becoming a mirror<a class="headerlink" href="#become" title="Permanent link">&para;</a></h1>
<p>The procedure for setting up new mirrors is described in <a href="http://www.apache.org/info/how-to-mirror.html">How to become a
mirror</a>.</p>
<h1 id="verify">Verify the integrity of the files<a class="headerlink" href="#verify" title="Permanent link">&para;</a></h1>
<p>It is essential that you verify the integrity of the downloaded file using
the PGP signature (<code>.asc</code> file) or a hash (<code>.md5</code> or <code>.sha*</code> file). Please read <a href="/info/verification.html">Verifying Apache Software
Foundation Releases</a> for more information on why
you should verify our releases.</p>
<p>The PGP signature can be verified using PGP or GPG. First download the
<code>KEYS</code> as well as the <code>asc</code> signature file for the relevant distribution.
Make sure you get these files from the main distribution site, rather than
from a mirror. Then verify the signatures using</p>
<div class="codehilite"><pre><span class="c">% gpg --import KEYS</span>
<span class="c">% gpg --verify downloaded_file.asc downloaded_file</span>
</pre></div>
<p><em>or</em></p>
<div class="codehilite"><pre><span class="c">% pgpk -a KEYS</span>
<span class="c">% pgpv downloaded_file.asc</span>
</pre></div>
<p><em>or</em></p>
<div class="codehilite"><pre><span class="c">% pgp -ka KEYS</span>
<span class="c">% pgp downloaded_file.asc</span>
</pre></div>
<p>Alternatively, you can verify the hash on the file.</p>
<p>Hashes can be calculated using GPG:</p>
<div class="codehilite"><pre><span class="c">% gpg --print-md SHA256 downloaded_file</span>
</pre></div>
<p>The output should be compared with the contents of the SHA256 file.
Similarly for other hashes (SHA512, SHA1, MD5 etc) which may be provided.</p>
<p>Windows 7 and later systems should all now have certUtil:</p>
<div class="codehilite"><pre><span class="c">% certUtil -hashfile pathToFileToCheck [HashAlgorithm]</span>
</pre></div>
<p>HashAlgorithm choices: MD2 MD4 MD5 SHA1 SHA256 SHA384 SHA512</p>
<p>Unix-like systems (and macOS) will have a utility called
md5, md5sum or shasum</p>

+ 37
- 0
content/index.ezmd 查看文件

@ -0,0 +1,37 @@
Title: What is Apache Petri?
version: 1.0
<!-- Licensed under ALv2 -->
![[]Apache Petri Logo](images/logo.svg) {.float-right}
The Apache Template is an effort to show how to use **Pelican ASF**
Here are various data inclusions:
["Title: %0, Version: %1" title version]
[include "projects/projects.snippet"]
{{ relative_source_path }} - {{ version }} - [{ board[1].name }] - {{ tester }}
[{ ci[boardchair][roster] }] - [{ ci[tac][chair] }] - [{ ci[infrastructureadministrator][roster] }]
[{ board[30].name }] - [{ eccn[11].product[0].name }] - [{ eccn[11].product[0].versions[0].version }]
## About "The Apache Way" {#the-way}
- [[]The Apache Way](https://www.apache.org/theapacheway/index.html)
- [[]Sustainable Open Source](https://s.apache.org/GhnI)
- [[]How it Works](https://www.apache.org/foundation/how-it-works.html)
- [[]Merit](https://www.apache.org/foundation/how-it-works.html#meritocracy)
- [[]Success at Apache](https://blogs.apache.org/foundation/category/SuccessAtApache)
Please read our [[]FAQ](/faq)
## Repositories and Issue Tracking
- [[]Website](https://github.com/apache/template-site)
- [[]Issues](https://github.com/apache/template-site/issues)
<p>["Title: %0, Version: %1" title version]</p>

+ 6
- 0
content/links.md 查看文件

@ -0,0 +1,6 @@
title: Links
<!-- Licensed under ALv2 -->
## Project Status
- [Cookbook](projects/cookbook)

+ 25
- 0
content/mentors.md 查看文件

@ -0,0 +1,25 @@
title: Mentors at Apache Petri
<!-- Licensed under ALv2 -->
<script type="text/javascript">
</script>
<style></style>
<iframe></iframe>
## Introduction
Mentors at Apache Petri provides insight into the Apache Way and general oversight of the learning process
for projects within the Apache Petri.
## Current mentors
- Daniel Gruno (humbedooh)
- Daniel Shahaf (danielsh)
- Dave Fisher (wave)
- David Nalley (ke4qqq)
- Greg Stein (gstein)
- Justin Erenkrantz (jerenkrantz)
- Ross Gardler (rgardler)
- Sander Striker (striker)

+ 11
- 0
content/project_list.ezmd 查看文件

@ -0,0 +1,11 @@
Title: Apache Project List
version: 1.0
source_button: yes
<!-- Licensed under ALv2 -->
# Projects
| Column 1 | Column 2 | Column 3 | Column 4 | Column 5 | Column 6 |
| ----------- | ----------- | ----------- | ----------- | ----------- | ----------- |
| [for pl_0][is pl_0.letter pl_0.display_name]**[pl_0.letter]**[else][[][pl_0.display_name]]([pl_0.site])[end]<br>[end] | [for pl_1][is pl_1.letter pl_1.display_name]**[pl_1.letter]**[else][[][pl_1.display_name]]([pl_1.site])[end]<br>[end] | [for pl_2][is pl_2.letter pl_2.display_name]**[pl_2.letter]**[else][[][pl_2.display_name]]([pl_2.site])[end]<br>[end] | [for pl_3][is pl_3.letter pl_3.display_name]**[pl_3.letter]**[else][[][pl_3.display_name]]([pl_3.site])[end]<br>[end] | [for pl_4][is pl_4.letter pl_4.display_name]**[pl_4.letter]**[else][[][pl_4.display_name]]([pl_4.site])[end]<br>[end] | [for pl_5][is pl_5.letter pl_5.display_name]**[pl_5.letter]**[else][[][pl_5.display_name]]([pl_5.site])[end]<br>[end] |

+ 8
- 0
content/projects.ezmd 查看文件

@ -0,0 +1,8 @@
Title: Apache Projects
version: 1.0
<!-- Licensed under ALv2 -->
| Office | Individual |
|-----------|-------------| [for projects]
| V.P., [if-any projects.site][[][end]Apache [projects.display_name][if-any projects.site]]([projects.site])[end] | [projects.chair] |[end]

+ 53
- 0
content/projects/cookbook.md 查看文件

@ -0,0 +1,53 @@
title: Cookbook
<!-- Licensed under ALv2 -->
## Petri Cookbook
[TOC]
This describes a project community cookbook.
### About
This section should describe the project.
Whenever a community begins to call itself Apache Foo then it needs to provide a DISCLAIMER. Contact discuss@petri.apache.org for the text.
[TOC]
### Website
Provide the current website for the project community.
### Mailing Lists
List the mailing lists used by the community.
### Source Code Repository
Provide the url to the source code repository. This will usually require an SGA be filed (See below.)
### Issue Tracker
Provide the address to your issue tracker. The ASF offers both JIRA and GitHub issue trackers. Bugzilla is also an option for older projects.
### Wiki
Provide the address to your project wiki, if any. The ASF offers both Confluence and GitHub wikis.
Other Wikis would require other support which should be discussed with your mentors.
### Releases
The URL where project releases can be found.
### Licensing Transitions
The community needs to undertake some license transitions.
- "No SGA" or "SGA provided". [Software License Grant](https://www.apache.org/licenses/contributor-agreements.html#grants)
- "No ICLAs" or "ICLAs provided". [Contributor License Agreements](https://www.apache.org/licenses/contributor-agreements.html#clas)
- "No ASF Headers" or "ASF Headers Applied". [Applying the Apache License](https://infra.apache.org/apply-license.html)
- "No Apache LICENSE" or "LICENSE approved". [Understanding Release Policy](http://www.apache.org/legal/release-policy.html)
- "No Apache NOTICE" or "NOTICE approved". [Understanding Release Policy](http://www.apache.org/legal/release-policy.html)
### Mentors
List your current mentors.

+ 4
- 0
content/projects/projects.snippet 查看文件

@ -0,0 +1,4 @@
## Project Status
- [[]Cookbook](projects/cookbook)

+ 9
- 0
content/tweets.ezmd 查看文件

@ -0,0 +1,9 @@
Title: Tweets
version: 1.0
<!-- Licensed under ALv2 -->
[for twitter]
## Tweet
[twitter.id]
[twitter.text]
[end]

+ 4348
- 0
data/eccn/eccnmatrix.json
文件差异内容过多而无法显示
查看文件


+ 2699
- 0
data/eccn/eccnmatrix.yaml
文件差异内容过多而无法显示
查看文件


+ 35
- 0
pelicanconf.yaml 查看文件

@ -0,0 +1,35 @@
site:
name: Apache Template
description: Provides a template for projects wishing to use the Pelican ASF static content system
domain: template.apache.org
logo: images/logo.png
repository: https://github.com/apache/template-site/blob/main/content/
trademarks: Apache, the Apache feather logo, and "Project" are trademarks or registered trademarks
theme: theme/apache
# plugins:
# paths:
# - theme/plugins
# use:
# - gfm
setup:
data: asfdata.yaml
run:
- /bin/bash shell.sh
ignore:
- README.md
- include
- docs
copy:
- docs
genid:
unsafe: yes
metadata: yes
elements: yes
headings_depth: 4
permalinks: yes
toc_depth: 4
tables: yes

+ 6
- 0
requirements.txt 查看文件

@ -0,0 +1,6 @@
pelican
pelican-sitemap
BeautifulSoup4
ezt
PyYAML
requests

+ 8
- 0
shell.sh 查看文件

@ -0,0 +1,8 @@
#!/bin/bash
echo $PWD
echo 'EZMD'
find . -name "*.ezmd"
echo 'MD'
find . -name "*.md"

+ 38
- 0
theme/apache/templates/README.md 查看文件

@ -0,0 +1,38 @@
# Apache Theme
The Apache Theme included here consists two types of files.
1. Page templates.
There should be one template for each page type.
2. CSS stylesheets.
There are css overrides for the site and/or template.
## Page Templates
1. base.html - there is only one page type.
Change the base page as necessary and add new page types as required.
## CSS Stylesheets
These are site or template specific overrides to the stylesheet frameworks.
You can choose to include these in your template, or you can move the file into your assets.
1. styles.css - consists of custom site CSS overrides. Edit as needed.
See [Web Developer](../../../DEVELOPER.md) for framework and other information.
Each of the above files should be edited as needed for the deployed website.
## Pelican Variables set in [pelicanconf.py](../../../pelicanconf.py)
~~~python
SITENAME = u'Apache <pmc>'
SITEDOMAIN = '<pmc>.apache.org'
SITEURL = 'https://<pmc>.apache.org'
SITELOGO = 'https://<pmc>.apache.org/images/logo.png'
SITEDESC = u'<pmc desc>'
SITEREPOSITORY = 'https://github.com/apache/<pmc-site>/blob/<branch>/content/'
TRADEMARKS = u'Apache, the Apache feather logo, and <pmc> are trademarks or registered trademarks'
CURRENTYEAR = date.today().year
~~~

+ 213
- 0
theme/apache/templates/base.html 查看文件

@ -0,0 +1,213 @@
<!doctype html>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<html lang="en" prefix="og: https://ogp.me/ns#">
<head>
{% block head %}
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>{{ SITENAME }} - {{ page.title }}</title>
{% endblock %}
<!-- Below Meta Tags Generated via https://www.opengraph.xyz -->
<!-- If you don't care about social media then remove this section -->
<!-- Values are set in pelicanconf.py -->
<!-- HTML Meta Tags -->
<meta name="description" content="{{ SITEDESC }}">
<!-- Facebook Meta Tags -->
<meta property="og:url" content="{{ SITEURL }}">
<meta property="og:type" content="website">
<meta property="og:title" content="{{ SITENAME }}">
<meta property="og:description" content="{{ SITEDESC }}">
<meta property="og:image" content="{{ SITELOGO }}">
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image">
<meta property="twitter:domain" content="{{ SITEDOMAIN }}">
<meta property="twitter:url" content="{{ SITEURL }}">
<meta name="twitter:title" content="{{ SITENAME }}">
<meta name="twitter:description" content="{{ SITEDESC }}">
<meta name="twitter:image" content="{{ SITELOGO }}">
<!-- Above Meta Tags Generated via https://www.opengraph.xyz -->
<!-- Start favicon styles - use apache feather -->
<link rel="shortcut icon" href="https://www.apache.org/favicons/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="https://www.apache.org/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://www.apache.org/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://www.apache.org/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://www.apache.org/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://www.apache.org/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://www.apache.org/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://www.apache.org/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://www.apache.org/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://www.apache.org/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://www.apache.org/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://www.apache.org/favicons/favicon-16x16.png" sizes="16x16">
<!--<link rel="manifest" href="https://www.apache.org/favicons/manifest.json" crossorigin="anonymous">-->
<meta name="msapplication-TileColor" content="#603cba">
<meta name="msapplication-TileImage" content="https://www.apache.org/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://www.apache.org/favicons/browserconfig.xml">
<meta name="theme-color" content="#282661">
<!-- End favicon styles - use apache feather -->
<!-- Start load of stylesheets (will need to upgrade periodically) -->
<link rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T"
crossorigin="anonymous">
<link rel="stylesheet"
href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/3.0.1/github-markdown.min.css"
crossorigin="anonymous">
<!-- Override css for this site. You can do this inline as shown here or with a site asset. See comment.-->
<style>
{% include "styles.css" %}
</style>
<!--<link rel="stylesheet" href="/styles/styles.css">-->
<!-- End stylesheets -->
</head>
<body id="index" class="home">
<!-- Start branding and top navigation -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<img src="https://www.apache.org/foundation/press/kit/feather.svg"
width="30" height="30" class="d-inline-block align-top"
alt="Apache Feather">
<a class="navbar-brand" href="/">{{ SITENAME }}</a>
<button class="navbar-toggler" type="button"
data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false"
aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li class="nav-item active">
<a class="nav-link" href="/index.html">Home</a>
</li>
<li class="nav-item active dropdown">
<a class="nav-link dropdown-toggle" href="#" id="exampleDropdown"
role="button" data-toggle="dropdown" aria-expanded="false">Examples</a>
<ul class="dropdown-menu" aria-labelledby="exampleDropdown">
<li><a class="dropdown-item" href="/board.html">Board</a></li>
<li><a class="dropdown-item" href="/featured.html/">Featured</a></li>
<li><a class="dropdown-item" href="/committees.html">Committees</a></li>
<li><a class="dropdown-item" href="/projects.html">Projects</a></li>
<li><a class="dropdown-item" href="/project_list.html">Project Columns</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="/eccn.html">Site Data</a></li>
<li><a class="dropdown-item" href="/tweets.html">Tweets</a></li>
<li><a class="dropdown-item" href="/blogs.html">Blogs</a></li>
</ul>
</li>
<li class="nav-item active">
<a class="nav-link" href="/downloads.html">Downloads</a>
</li>
<li class="nav-item active">
<a class="nav-link" href="/faq.html">FAQ</a>
</li>
</ul>
<div class="navbar-nav">
<div class="nav-item dropdown dropdown-menu-right active">
<a class="nav-link dropdown-toggle" href="#"
role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false">About</a>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" href="https://www.apache.org/">Foundation</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item"
href="https://www.apache.org/licenses/">License</a>
<a class="dropdown-item"
href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
<a class="dropdown-item"
href="https://www.apache.org/foundation/thanks.html">Thanks</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item"
href="https://www.apache.org/security/">Security</a>
</div>
</div>
</div>
</div>
</nav>
<!-- End branding and top navigation -->
<!-- Start main content area -->
<div class="container">
<p>{{ page.metadata.breadcrumbs }}</p>
{% block content %}
{% endblock %}
{% if page.source_button is defined %}
<!-- button to view source in github -->
<h2><span class="badge badge-secondary">
<a href="{{ SITEREPOSITORY }}{{ page.relative_source_path }}" style="color:white">Page Source</a>
</span></h2>
{% endif %}
</div>
<!-- End main content area -->
<!-- Start footer -->
<footer class="navbar-expand-lg navbar-light bg-light">
<div class="footer" id="footer">
<div class="row container-fluid">
<div class="col-sm">
<a href="https://www.apache.org/">
<img src="https://www.apache.org/img/asf_logo.png" alt="The Apache Software Foundation" style="border: 0; margin-top: 2px" width="200">
</a>
</div>
<div class="col-sm center-align">
<a href="https://www.apache.org/foundation/contributing.html">
<img src="https://www.apache.org/images/SupportApache-small.png" alt="Support The ASF" height="80" width="80">
</a>
</div>
<div class="col-sm right-align">
<a class="acevent" data-format="wide" data-mode="light" data-event="random"></a>
</div>
</div>
<div class="container-fluid">
Copyright &copy; {{ CURRENTYEAR }} The Apache Software Foundation,
Licensed under the
<a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0.</a>
<br/>
{{ TRADEMARKS }} of <a href="https://www.apache.org/">The Apache Software Foundation.</a>
</div><!-- #container-fluid -->
</div>
</footer>
<!-- End footer -->
<!-- Start the loading of javascript frameworks (will need to upgrade periodically) -->
<script src="https://www.apachecon.com/event-images/snippet.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.slim.min.js"
integrity="sha512-6ORWJX/LrnSjBzwefdNUyLCMTIsGoNP6NftMy2UAm1JBm6PRZCO1d7OHBStWpVFZLO+RerTvqX/Z9mBFfCJZ4A=="
crossorigin="anonymous"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script
src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM"
crossorigin="anonymous"></script>
<!-- End the loading of javascript frameworks -->
<!-- Source: {{ page.relative_source_path }}; Template: {{ page.default_template }}; Url: {{ page.url }} -->
</body>
</html>

+ 65
- 0
theme/apache/templates/styles.css 查看文件

@ -0,0 +1,65 @@
html {
font-size: 18px;
}
body {
font-family: 'Montserrat', 'Source Sans Pro','Helvetica Neue', Helvetica, Arial, sans-serif;
font-weight: 300;
background-color: #fff;
}
.markdown-body {
box-sizing: border-box;
min-width: 200px;
max-width: 980px;
margin: 0 auto;
padding: 45px;
}
@media (max-width: 767px) {
.markdown-body {
padding: 15px;
}
}
.footer {
border-top: 1px solid black;
padding-top: 3px;
}
.right-align {
text-align: right;
}
.center-align {
text-align: center;
}
blockquote {
background: bisque;
}
.bg-primary {
background-color: #005bff!important;
}
a {
font-weight: 400;
color: #4643aa;
# color: #005bff;
}
#li {
# line-height: 2;
#}
.h1, h1 {
font-size: 1.5rem;
}
.h2, h2 {
font-size: 1.4rem;
}
.h3, h3 {
font-size: 1.3rem;
}
.h4, h4 {
font-size: 1.2rem;
}
.h5, h5 {
font-size: 1.1rem;
}
.headerlink {
visibility: hidden;
}
h1:hover > .headerlink, h2:hover > .headerlink, h3:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, h6:hover > .headerlink {
visibility: visible
}

正在加载...
取消
保存