Bir Google Docs / Drive belgesindeki başlıkları numaralandırmak mümkün müdür?
Yanıtlar:
Daha kolay bir şey istiyorsanız , başlıklarınızı numaralandırmanıza izin verecek "İçindekiler Tablosu" adında bir Google Eklentisi var .
Bu eklentiyi yüklemek için:
Ardından İçindekiler'iniz kenar çubuğunuzda görünmelidir. Başlık Numaraları Biçimi menüsüne tıklayın ve 1.2.3'ü seçin.
Numaraları 'yenilemek' için eski bir belgeniz varsa belgenizi yeniden biçimlendirmeniz gerekir, ancak aslında eklenti çok iyi çalışıyor.
Cevabı bu forumda gördüm .
Güncelleme: artık github'da mevcut .
Güncelleme 2: artık github'daki 2 çekme isteği sayesinde boş başlıklar ve boş satırlar işleniyor.
Güncelleme 3: github ve aşağıdaki kod, yeni Docs HEADING kimliğini işleyecek şekilde düzeltildi.
Mikko Ohtamaa tarafından bahsedilen komut dosyasını değiştirdim ve şunları yapmanıza olanak tanıyan Başlıklar araçları Doküman menüsü ekleyen bir Google Apps Komut Dosyası oluşturdum :
Google Dokümanlar Başlıklarını otomatik olarak numaralandırma:
~~ Sorumluluk reddi: Boş Başlıklar ile ilgili sorunlarınız olabilir .. Ancak bunları her zaman düzeltebilir ve işlemi tekrar çalıştırabilirsiniz. ~~
Kopyalamak ve yapıştırmak için kod:
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]+/, ''));
}
}
}
Tek yapmanız gereken önceki başlıkları kopyalamak / yapıştırmaktır.
Numaralandırılmış listedeki herhangi bir öğeyi kopyalayıp yapıştırırsanız, numaralandırmasını korur ve ilgili durumlarda numarayı otomatik olarak değiştirir.
Yazımdan bu yana (Nisan 2020), önerilen birçok uygulama eski veya artık çalışmıyor.
Çalıştığını bulduğum numaralandırılmış başlıklar için yöntem şudur:
Markdown Araçları, numaralı başlıkları kullanma seçeneğine sahiptir. Yerleşik Google'ın İçindekiler Tablosu ile büyüleyici bir şekilde çalışır.
Bir içindekiler tablosu oluşturmak için:
İşaretleme başlıkları yapmak için bir sürüm yazdım, ancak aynı zamanda düz başlık numaralarını da destekliyor. Kaynak buradadır https://github.com/jordan2175/markdown-tools ve G Suite Marketplace üzerinden "Markdown Araçları" olarak kullanılabilir.
Daha önce bahsedilen "İçindekiler tablosu" eklentisi bugün itibariyle mevcut değildir. " Markdown Araçları " adını yükledim, yüklendikten sonra yerel başlık stillerini uygulamanız ve ardından Eklentiler> İşaretleme Araçları> Başlık numaraları'na gitmeniz ve belgedeki tüm başlıklara uygulanacak istenen numaralandırma stilini seçmeniz gerekir.