Czy można numerować nagłówki w dokumencie Google Docs / Drive?
google-apps-script
google-docs
google-drive-api
ZehnVon12
źródło
źródło
Odpowiedzi:
Jeśli chcesz czegoś prostszego, istnieje dodatek Google o nazwie „Spis treści” , który pozwoli Ci numerować nagłówki.
Aby zainstalować ten dodatek:
Następnie Twój spis treści powinien pojawić się na pasku bocznym. Kliknij menu Format numerów nagłówków i wybierz 1.2.3
Musisz przeformatować dokument, jeśli masz stary, aby „odświeżyć” numery, ale w rzeczywistości dodatek działa bardzo dobrze.
Widziałem odpowiedź na tym forum .
źródło
Aktualizacja: teraz dostępna na githubie .
Aktualizacja 2: teraz obsługuje puste nagłówki i puste wiersze dzięki 2 żądaniom ściągnięcia na githubie.
Aktualizacja 3: Naprawiono github i poniższy kod w celu obsługi nowej identyfikacji HEADING w Dokumentach.
Zmodyfikowałem skrypt, o którym wspomniał Mikko Ohtamaa, i utworzyłem skrypt Aplikacji Google, który dodaje menu Dokument z narzędziami Nagłówki, które umożliwia:
Jak automatycznie numerować nagłówki w dokumentach Google:
~~ Zastrzeżenie: możesz mieć problemy z pustymi nagłówkami .. Ale zawsze możesz je naprawić i ponownie uruchomić akcję. ~~
Kod do skopiowania i wklejenia:
function onOpen() { DocumentApp.getUi().createMenu('Headings Tools') .addItem('Auto Number Headings', 'numberHeadingsAdd') .addItem('Clear Heading Numbers', 'numberHeadingsClear') .addToUi(); } function numberHeadingsAdd(){ numberHeadings(true); } function numberHeadingsClear(){ numberHeadings(false); } function numberHeadings(add){ var document = DocumentApp.getActiveDocument(); var body = document.getBody(); var paragraphs = document.getParagraphs(); var numbers = [0,0,0,0,0,0,0]; for (var i in paragraphs) { var element = paragraphs[i]; var text = element.getText()+''; var type = element.getHeading()+''; // exclude everything but headings if (!type.match(/HEADING\d/)) { continue; } // exclude empty headings (e.g. page breaks generate these) if( text.match(/^\s*$/)){ continue; } if (add == true) { var level = new RegExp(/HEADING(\d)/).exec(type)[1]; var numbering = ''; numbers[level]++; for (var currentLevel = 1; currentLevel <= 6; currentLevel++) { if (currentLevel <= level) { numbering += numbers[currentLevel] + '.'; } else { numbers[currentLevel] = 0; } } Logger.log(text); var newText = numbering + ' ' + text.replace(/^[0-9\.\s]+/, ''); element.setText(newText); Logger.log([newText]); } else { Logger.log(text); element.setText(text.replace(/^[0-9\.\s]+/, '')); } } }
źródło
Wszystko, co musisz zrobić, to skopiować / wkleić poprzednie nagłówki.
Jeśli skopiujesz i wkleisz jakąkolwiek pozycję z listy numerowanej, to zachowuje ona numerację i automatycznie zmienia numer w odpowiednich przypadkach.
źródło
Od czasu napisania (kwiecień 2020 r.) Wiele proponowanych aplikacji jest przestarzałych lub już nie działa.
Metoda numerowanych nagłówków, która według mnie działa, jest następująca:
Narzędzia Markdown mają opcję używania numerowanych nagłówków. Działa jak urok dzięki wbudowanemu spisowi treści Google.
Aby utworzyć spis treści:
źródło
Napisałem wersję do robienia nagłówków przecen, ale obsługuje również zwykłe numery nagłówków. Źródło znajduje się tutaj https://github.com/jordan2175/markdown-tools i jest dostępne w G Suite Marketplace jako „Narzędzia Markdown”.
źródło
Wspomniany dodatek „Spis treści” nie jest obecnie dostępny. Zainstalowałem to o nazwie „ Narzędzia Markdown ” Po zainstalowaniu musisz zastosować natywne style nagłówków, a następnie przejść do Dodatki> Narzędzia Markdown> Numery nagłówków i wybrać żądany styl numeracji, który zostanie zastosowany do wszystkich nagłówków w dokumencie.
źródło