GitHub 작업을 모두 확인하십시오 : https://actions.cicirello.org/
| Github 동작 | |
|---|---|
| 상태 빌드 상태 | |
| 소스 정보 | |
| 지원하다 |
GETHUB 페이지에서 호스팅하는 웹 사이트의 사이트 맵을 생성하고 다음과 같은 기능이 있습니다.
<lastmod> 태그를 생성합니다. 해당 워크 플로 실행 중에 파일이 생성되었지만 아직 커밋되지 않은 경우 현재 날짜를 사용합니다 (그러나 가능한 경우 새로 작성된 파일을 먼저 커밋하는 것이 좋습니다).<meta name="robots" content="noindex"> 지침에 대한 HTML 파일의 내용을 확인하십시오.User-agent: * 경우 robots.txt Disallow: 구문 분석합니다.index.html 이있는 파일의 경우 페이지의 선호하는 URL이 Enclosing Directory로 끝나면 index.html 남기는 것으로 가정합니다. 예를 들어, https://WEBSITE/PATH/index.html 대신 Siteemap에는 https://WEBSITE/PATH/ 포함됩니다..html 확장을 제외 할 옵션을 제공합니다.Generate-Sitemap Github 동작은 다른 GitHub 동작과 함께 사용되도록 설계되었습니다. 예를 들어, 생성 된 사이트 맵을 커밋하고 푸시하지 않습니다. 워크 플로에서 다른 동작과 결합 된 예는 예제를 참조하십시오.
생성 시트 맵 동작은 GitHub 페이지 사이트를위한 것이며,이 저장소에는 HTML이 정적 사이트 생성기에 의해 생성되었는지 여부에 관계없이 사이트 자체의 HTML 등이 포함되어 있거나 손으로 작성되었습니다. 예를 들어, 나는 대부분의 사이트가 Javadoc에 의해 생성되는 여러 Java 프로젝트 문서 사이트에 사용합니다. 또한 개인 웹 사이트와 함께 사용하여 사용자 지정 정적 사이트 생성기로 생성됩니다. GitHub 페이지 사이트의 저장소에 서비스가 제공되는 사이트 (예 : HTML 파일, PDF 파일 등)가 포함 된 한 Generate-Sitemap 작업이 적용됩니다.
생성 시트 맵 동작은 GitHub 페이지 Jekyll 사이트에 대한 것이 아닙니다 (현지에서 사이트를 생성하고 Markdown 대신 HTML 출력을 푸시하지 않는 한, 왜 그렇게합니까?). github 페이지 Jekyll 사이트의 경우 리포지토리에는 Markdown에서 생성 된 HTML이 아닌 Markdown이 포함되어 있습니다. Generate-Sitemap 동작은 해당 사용 사례를 지원하지 않습니다. Jekyll 웹 사이트의 사이트 맵을 생성하려는 경우 Jekyll 플러그인이 있습니다.
문서의 나머지 부분은 다음 섹션으로 구성됩니다.
이 작업은 fetch-depth: 0 사용하여 actions/checkout@v2 에 의존합니다. 체크 아웃 조치를 위해 fetch-depth 0으로 설정하면 generate-sitemap 동작이 Commit 기록에 액세스 할 수 있으며, 이는 sitemap.xml 파일에서 <lastmod> 태그를 생성하는 데 사용됩니다. 체크 아웃 조치를 적용 할 때 기본값을 사용하는 경우 <lastmod> 태그가 올바르지 않습니다. 따라서 다음을 워크 플로의 단계로 포함시켜야합니다.
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0 path-to-root 저장소의 루트와 관련하여 웹 사이트의 루트로가는 경로. 기본 . 페이지 사이트의 루트가 리포지토리 자체의 루트가 될 때마다 대부분의 경우 적절합니다. docs 디렉토리의 GitHub 페이지 사이트에 이것을 사용하는 경우이 입력에 대한 docs 전달하십시오.
base-url-path 이것은 웹 사이트의 URL입니다. 사이트 맵이 의미가 있도록이를 지정해야합니다. 시연 목적으로 https://web.address.of.your.nifty.website/ 로 기본적으로 표시됩니다.
include-html 이 플래그는 HTML 파일이 사이트 맵에 포함되어 있는지 여부를 결정합니다 ( .html 또는 .htm 확장자). 기본값 : true .
include-pdf 이 플래그는 PDF 파일이 사이트 맵에 포함되어 있는지 여부를 결정합니다. 기본값 : true .
additional-extensions 다른 문서 유형에 URL을 포함하려면 additional-extensions 입력을 사용하여 파일 확장의 목록 (공간별로 구분)을 지정할 수 있습니다. 예를 들어, Google (및 기타 검색 엔진)은 docx , doc , 다양한 일반적인 프로그래밍 언어에 대한 소스 코드 등을 포함한 다양한 다른 파일 유형을 색인화합니다. 예는 다음과 같습니다.
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
additional-extensions : doc docx ppt pptxexclude-paths 이 작업은 현재 경우 robots.txt 파일을 기반으로 파일 또는 디렉토리를 자동으로 제외합니다. 그러나 다른 차단되지 않은 사이트 맵에서 제외하려는 추가 디렉토리 또는 개별 파일이있는 경우, exclude-paths 입력을 사용하여 모든 공백 문자로 분리 된 목록을 지정할 수 있습니다. 예를 들어, 개별 파일 /nositemap.html 뿐만 아니라 디렉토리 /exclude-these 제외하려면 다음을 사용할 수 있습니다.
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : /exclude-these /nositemap.html제외해야 할 많은 경우가있는 경우 YAML 멀티 라인 문자열을 사용하면 다음과 같은 작업 플로우를 읽기가 더 쉬울 수 있습니다.
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
exclude-paths : >
/exclude-these
/nositemap.htmlsitemap-format 이것을 사용하여 Sitemap 형식을 지정하십시오. 기본값 : xml . 기본값으로 생성 된 sitemap.xml 에는 각 파일의 마지막 커밋 날짜를 사용하여 생성되는 LastMod 날짜가 포함됩니다. 이 입력을 xml 이외의 다른 것으로 설정하면 일반 텍스트 sitemap.txt 간단히 URL을 나열합니다.
drop-html-extension drop-html-extension 입력은 사이트 맵에 나열된 URL에서 .html 확장을 제외시키는 옵션을 제공합니다. 기본값은 drop-html-extension: false 입니다. 이 옵션을 사용하려면 drop-html-extension: true . URL에 파일 확장자가없는 경우 GitHub 페이지가 해당 HTML 파일을 자동으로 제공합니다. 예를 들어, 사이트 사용자가 URL을 탐색하는 경우 https https://WEBSITE/PATH/filename.html https://WEBSITE/PATH/filename (확장자 없음)이 있으면 GitHub 페이지가 자동으로 제공됩니다. generate-sitemap 동작의 기본 동작에는 파일 이름에 .html 확장자가있는 페이지의 .html 확장자가 포함됩니다. Siteemap의 URL에서 .html 확장을 제외하려면 drop-html-extension: true . 또한 HTML 파일 내에서 나열한 표준 링크가 여기에서 선택한 것과 일치하는지 확인해야합니다.
date-only date-only 입력은 XML Sitemaps에 LastMod의 전체 날짜 및 시간이 포함되어 있는지 또는 날짜 만 제어합니다. 기본값은 date-only: false , 여기에는 LastMod 필드의 전체 날짜 및 시간이 포함됩니다. LastMod의 날짜 만 원한다면 date-only: true 사용하십시오.
sitemap-path 생성 된 사이트 맵은 웹 사이트의 루트에 배치됩니다. 이 출력은 저장소의 루트에 대한 생성 된 사이트 맵 파일의 경로입니다. path-to-root 입력을 사용하지 않은 경우이 출력은 단순히 siteemap 파일 ( sitemap.xml 또는 sitemap.txt )의 이름이어야합니다.
url-count이 출력은 사이트 맵의 URL 수를 제공합니다.
excluded-count 이 출력은 HTML 파일 내에서 <meta name="robots" content="noindex"> 또는 robots.txt 파일의 지시문에서 제외되어 사이트 맵에서 제외 된 URL 수를 제공합니다.
이와 같은 워크 플로의 단계로 작업을 실행할 수 있습니다.
- name : Generate the sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/위의 예에서는 주요 릴리스 버전이 사용되어 버그 수정 등을 포함하여 최신 패치 레벨 릴리스를 사용할 수 있습니다. 원하는 경우 다음과 같은 특정 버전을 사용할 수도 있습니다.
- name : Generate the sitemap
uses : cicirello/[email protected]
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/ 이 예제 워크 플로우에서는 base-url-path 입력을 제외한 모든 기본 입력을 사용합니다. 결과는 저장소 루트의 sitemap.xml 파일입니다. 완료 후, 그것은 단순히 출력을 반향합니다.
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" 이 예제 워크 플로우는이를 사용하여 저장소의 docs 디렉토리에있는 페이지 사이트에 대한 사이트 맵을 생성하는 방법을 보여줍니다. 또한 pdf 파일을 제외하고 일반 텍스트 사이트 맵을 구성합니다.
name : Generate API sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
path-to-root : docs
include-pdf : false
sitemap-format : txt
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" 이 예제 워크 플로에서는 additional-extensions 입력을 사용하여 사이트 맵에 다양한 추가 유형을 추가합니다. 워크 플로가 포함 include-html true 의 기본값을 사용하기 때문에 HTML 파일과 PDF 파일도 include-pdf .
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
additional-extensions : doc docx ppt pptx xls xlsx
- name : Output stats
run : |
echo "sitemap-path = ${{ steps.sitemap.outputs.sitemap-path }}"
echo "url-count = ${{ steps.sitemap.outputs.url-count }}"
echo "excluded-count = ${{ steps.sitemap.outputs.excluded-count }}" 아마도 사이트 맵이 생성되면 사이트 맵으로 무언가를하고 싶을 것입니다. 이 예제 워크 플로에서 우리는이를 행동 Peter-Evans/Create-Pull-Request와 결합합니다. 먼저 cicirello/generate-sitemap 동작이 사이트 맵을 생성합니다. 그런 다음 peter-evans/create-pull-request 모니터가 변경 사항을 모니터하고 사이트 맵이 변경되면 풀 요청이 발생합니다.
name : Generate xml sitemap
on :
push :
branches : [ main ]
jobs :
sitemap_job :
runs-on : ubuntu-latest
name : Generate a sitemap
steps :
- name : Checkout the repo
uses : actions/checkout@v4
with :
fetch-depth : 0
- name : Generate the sitemap
id : sitemap
uses : cicirello/generate-sitemap@v1
with :
base-url-path : https://THE.URL.TO.YOUR.PAGE/
- name : Create Pull Request
uses : peter-evans/create-pull-request@v3
with :
title : " Automated sitemap update "
body : >
Sitemap updated by the [generate-sitemap](https://github.com/cicirello/generate-sitemap)
GitHub action. Automated pull-request generated by the
[create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action. 이 첫 번째 실제 예는 개발자의 개인 웹 사이트에서 나온 것입니다. 워크 플로 중 하나 인 Sitemap-Generation.yml은 Sitemap을 생성하기위한 것입니다. *.html 또는 *.pdf 파일을이 저장소의 스테이징 브랜치로 푸시합니다. Sitemap을 생성 한 후 Peter-Evans/Create-Pull-Request를 사용하여 풀 요청을 생성합니다. 해당 단계를 커밋으로 바꾸고 대신 푸시 할 수도 있습니다. 결과 사이트 맵을 여기에서 찾을 수 있습니다 : sitemap.xml.
이 예는 Chips-N-Salsa 라이브러리의 문서 웹 사이트입니다. docs.yml 워크 플로우는 *.java 파일의 푸시 및 풀 레퍼스트에서 실행됩니다. Maven을 사용하여 Javadoc을 실행합니다 (예 : mvn javadoc:javadoc ). 그런 다음 생성 된 Javadoc 문서를 API 웹 사이트가 제공되는 docs 디렉토리에 복사합니다. 그 다음에는 또 다른 Github 액션 인 Cicirello/Javadoc-Cleanup이 이어지고, 이로 인해 Javadoc 생성 웹 사이트를 몇 번 편집하여 모바일 브라우징을 개선합니다.
다음으로 Javadoc 및/또는 Javadoc-Cleanup에서 생성 한 모든 변경 사항 (아직 추진없이)을 제공합니다. 이러한 커밋을 수행 한 후 이제 Sitemap을 생성하기 위해 생성 시트 맵 동작을 실행합니다. 마지막 모드 날짜가 정확할 수 있도록 사이트 변경을 저지른 후에이를 수행합니다. 마지막으로 Peter-Evans/Create-Pull-Request를 사용하여 풀 요청을 생성합니다. 해당 단계를 커밋으로 바꾸고 대신 푸시 할 수도 있습니다.
결과 사이트 맵을 여기에서 찾을 수 있습니다 : sitemap.xml.
generate-sitemap 동작은 다음을 사용합니다.
다음은 dev.to에서 생성 시트 맵에 대한 블로그 게시물을 선택합니다.
여러 가지 방법으로 프로젝트를 지원할 수 있습니다.
generate-sitemap 액션이 유용하다는 것을 알게되면 저장소 주연을 고려하십시오.이 GitHub 조치에 대한 스크립트 및 문서는 MIT 라이센스에 따라 릴리스됩니다.