Как исправить проблемы с внутренними ссылками при публикации сайта Docusaurus на страницах GitLab - PullRequest
0 голосов
/ 08 февраля 2019

В моем проекте Docusaurus мои внутренние ссылки работают в моей локальной среде, но когда я нажимаю на GitLab, они больше не работают.Вместо того, чтобы заменить исходный заголовок документа новым, он добавляет его к URL-адресу в конце ('https://username.io/test-site/docs/overview/add-a-category.html'). Я просмотрел свой конфигурационный файл, но я не понимаю, почему это происходит.

Я попытался обновить id во фронтальной части страницы и убедиться, что он совпадает с id в файле sidebars.json. Я также добавил customDocsPath и установил его в 'docs /' в файле конфигурации, хотя это и предполагаетсяпо умолчанию.

---
id: "process-designer-overview"
title: "Process Designer Overview"
sidebar_label: "Overview"
---
# Process Designer

The Process Designer is a collaborative business process modeling and 
design workspace for the business processes, scenarios, roles and tasks 
that make up governed data processes.

Use the Process Designer to:

 - [Add a Category](add-a-category.html)
 - [Add a Process or Scenario](Add%20a%20Process%20or%20Scenario.html)
 - [Edit a Process or Scenario](Edit%20a%20Process%20or%20Scenario.html)

Я обновил ссылку на добавление категории в круглых скобках для расширения md, но это сломало ссылку на моем локальном компьютере и все еще не работало на GitLab. Я ожидаю, чтокогда пользователь нажимает на ссылку, он заменяет заголовок документа в URL новым заголовком документа ('https://username.gitlab.io/docs/add-a-category.html'), но вместо этого он просто прикрепляется к концу (' https://username.gitlab.io/docs/process-designer-overview/add-a-category.html') и т. д.).ссылка не работает, потому что это не то место, где находится документ.

1 Ответ

0 голосов
/ 12 февраля 2019

Было несколько проблем с моими ссылками.Во-первых, я конвертировал эти файлы из html в уценку с помощью Pandoc и не добавлял ничего, вместо этого полагаясь на имя файла, чтобы подключить мои файлы к боковым панелям.Это было хорошо, за исключением того, что почти во всех именах файлов были пробелы, что вы можете увидеть в моем примере кода выше.Это вызывало реальные проблемы, поэтому я нашел скрипт Bash, который заменил все пробелы в именах моих файлов подчеркиванием, но теперь все мои ссылки были разорваны.Я обновил все ссылки в моих файлах с помощью поиска и заменил в редакторе кода, заменив «% 20» на «_».Мне также нужно было заменить расширение «.html» на «.md», иначе мой проект больше не будет работать локально.Опять же, я сделал это с помощью поиска и замены в моем редакторе кода.

Наконец, я закончил тем, что добавил фронтальный материал, потому что в противном случае заголовки моих боковых панелей были бы подчеркнуты подчеркиванием.Поскольку я работал с 90 файлами, я не хотел делать это вручную.Я некоторое время искал и нашел отличный гистолог thebearJew и настроил его так, чтобы он брал имя файла и добавлял его в качестве идентификатора, а также первый заголовок и добавлял его в качестве заголовка и sidebar_label, посколькукак это происходит, что работает для нашего проекта.Вот скрипт Bash, который я нашел в Интернете для преобразования пробелов в именах моих файлов в подчеркивания, если это интересно:

find $1 -name "* *.md" -type f -print0 | \
  while read -d $'\0' f; do mv -v "$f" "${f// /_}"; done

Вот скрипт, с которым я остановился, если кто-то еще имеет аналогичную настройку и не хочетобновить огромное количество файлов с фронтом:

# Given a file path as an argument
# 1. get the file name
# 2. prepend template string to the top of the source file
# 3. resave original source file

# command: find . -name "*.md" -print0 | xargs -0 -I file ./prepend.sh file

filepath="$1"
file_name=$("basename" -a "$filepath")

# Getting the file name (title)
md='.md'
title=${file_name%$md}
heading=$(grep -r "^# \b" ~/Documents/docs/$title.md)
heading1=${heading#*\#}

# Prepend front-matter to files
TEMPLATE="---
id: $title
title: $heading1
sidebar_label: $heading1
---
"
echo "$TEMPLATE" | cat - "$filepath" > temp && mv temp "$filepath"
...