Dokumenty Google / Dysk - ponumeruj nagłówki

Odpowiedzi:

99

Jeśli chcesz czegoś prostszego, istnieje dodatek Google o nazwie „Spis treści” , który pozwoli Ci numerować nagłówki.

Aby zainstalować ten dodatek:

  1. Kliknij dodatki> Pobierz dodatki.
  2. Kliknij ikonę „Spis treści” lub wyszukaj ten dodatek, aby go zainstalować

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 .

Aitor
źródło
4
Jeśli pasek boczny nie jest wyświetlany, przejdź do „Dodatki-> Spis treści-> Pokaż na pasku bocznym” .
Steven Jeuris
3
Myślę, że każdy może nazwać swój dodatek „Spisem treści”. Pomocny jest więc link do właściwego dodatku. Domyślam się, że masz na myśli ten: chrome.google.com/webstore/detail/table-of-contents/ ...
nealmcb
Jak jest instalowana wtyczka - na komputer / przeglądarkę, na dokument, na użytkownika w Google Docs? Co się stanie, jeśli inni będą chcieli edytować dokument?
Sybille Peters
1
Niestety, ta wtyczka wydaje się być zepsuta. Nie można go zainstalować z powodu problemu z autoryzacją. Czy inni uzyskują ten sam wynik?
gavdotnet
1
@gavdotnet To zadziałało dla mnie, więc musieli to naprawić.
codefreak
50

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:

  • numer auto Nagłówek
  • wyczyść numery nagłówków

Jak automatycznie numerować nagłówki w dokumentach Google:

  1. Otwórz dokument> Narzędzia> Edytor skryptów ...
  2. Rozpocznij pusty projekt
  3. Wklej poniższy kod i zapisz pod preferowaną nazwą
  4. Wybierz Uruchom> onOpen i autoryzuj skrypt po raz pierwszy
  5. Wybierz Uruchom> onOpen
  6. Przejdź do swojego dokumentu i wypróbuj funkcje w utworzonym niestandardowym menu narzędzi Nagłówki .

~~ 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]+/, ''));
    }
  }

}
Luciano
źródło
Cieszę się, że @IvanCachicatari Planuję stworzyć ulepszoną wersję do uruchomienia jako Dodatek w ten sposób, że nie musimy za każdym razem otwierać edytora skryptów ...
Luciano
2
@IvanCachicatari Świetny pomysł, masz go! github.com/lpanebr/autoNumberHeadings
Luciano
2
@MrGravity Sposobem na osiągnięcie tego celu jest przekonwertowanie skryptu na dodatek do Dysku Google. Planuję to zrobić, ale już nie mam czasu ..
Luciano
1
Łał! Znowu czuję, że to lata 90-te. Czy naprawdę potrzebujemy skryptu, aby wykonać tak podstawową rzecz, jak numerowanie nagłówków? Teraz rozumiem, dlaczego tam są wszystkie te inicjatywy programowe - nasze dzieci naprawdę trzeba znać ich JavaScript napisać dowolny dokument roboczy; P
Janusz Skonieczny
1
@Luciano to trochę działa. Widzę, że dzieje się dziwna rzecz. Jeśli wycinam i wklejam kod z gita, otrzymuję jeden z dwóch wyników: nic się nie dzieje lub błąd parsowania wyrażenia regularnego w wierszu 38. Aby to zadziałało, muszę 1) wyciąć i wkleić kod git z 10/16 / 17, 2) zapisz, 3) ręcznie wprowadź sugerowane zmiany, 4) zapisz i uruchom zgodnie z powyższą listą. Zauważyłem niewielką różnicę: wiersz 38 w twojej wersji usuwa nawiasy wokół \ d.
Ginger McMurray
10

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.

alexkovelsky
źródło
Jakże pragmatyczne, to rozwiązanie jest niedoceniane.
coś
Rzeczywiście, jest to najłatwiejsze, NATYWNE rozwiązanie (jeśli nadal jesteś w fazie edycji)!
Demis
1
O ile wiem, wymaga to wcięcia z każdym poziomem nagłówka, na który zejdziesz. Czy tak jest, czy jest inny sposób?
gavdotnet
1
Problem polega na tym, że musisz skopiować nagłówki z tego samego dokumentu . Jeśli skopiujesz „nagłówek 1”, na przykład z innego dokumentu html, pomimo zachowania formatowania „nagłówka x”, nie będzie on miał numeru. Oznacza to, że jeśli masz już inny dokument z dużą ilością tekstu, który chcesz skopiować i wkleić, Twoje rozwiązanie wymagałoby zbyt wiele pracy ręcznej. A właściwie: jest tak samo, jeśli masz już dokument i chcesz po prostu wyliczyć tam nagłówki.
Hi-Angel
5

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:

  1. Idź do Pobierz dodatki
  2. Wyszukaj i zainstaluj narzędzia Markdown

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:

  1. Przejdź do pozycji menu Wstaw i wybierz Spis treści
Michael ten Den
źródło
To jest bardzo przydatne! Nie pomyślałbym, że prosta funkcja numerowania spisu treści będzie dostępna w narzędziu przecen, ale działa świetnie, dzięki!
prrao
1

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”.

jordan2175
źródło
Cześć @ jordan2175, dodatek jest świetny. Byłoby miło, gdyby wygenerowany spis treści miał numery stron.
David Lopez
0

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.

David Lopez
źródło