Пишу скрипт для Google Docs. Я хочу узнать расположение всех заголовков в документе. Затем я хочу создать список других ссылок с этими заголовками в документе. Я не хочу использовать TABLE_OF_CONTENTS. Я хочу сделать панель навигации подобия в Word 2010 (ссылка ). Только в Google Docs. Как я могу получить позицию или создать ссылки на все заголовки в документе и разместить их на боковой панели? Спасибо за помощь! Хорошего дня.
Панель навигации для Документов Google
Ответы (3)
См. этот пример. Это документ Google со сценарием для создания боковой панели с оглавлением.
Ниже приведен только код для получения списка заголовков. В связанном документе все есть в редакторе сценариев.
//Recursively get subsections
function getHeadersFromParagraphs(paragraphs, limit, starter){
var headers = [], header, hType, level, start, result,
paragraph,
heading,
i,
h1 = DocumentApp.ParagraphHeading.HEADING1,
h2 = DocumentApp.ParagraphHeading.HEADING2,
h3 = DocumentApp.ParagraphHeading.HEADING3,
h4 = DocumentApp.ParagraphHeading.HEADING4,
h5 = DocumentApp.ParagraphHeading.HEADING5,
h6 = DocumentApp.ParagraphHeading.HEADING6,
hTypes = [h1,h2,h3,h4,h5,h6];
//Loop through all paragraphs
start = starter ? starter.id+1 : 0;
for(i = start; i < paragraphs.length; i += 1){
paragraph = paragraphs[i];
heading = paragraph.getHeading();
level = hTypes.indexOf(heading);
if(level > -1 && level < limit){
if(paragraph.getText() == "") continue;
if(starter && level <= starter.level) { i--; break; }
header = { name : paragraph.getText(), id : i, level : level };
result = getHeadersFromParagraphs(paragraphs, limit, header);
i = result.index;
header.subheaders = result.headers;
headers.push(header);
}
}
return { headers : headers, index : i }
}
//Initiate parsing of headers. By default, limit to Heading 1.
function pullHeaders(level){
level = level || 1;
var body = DocumentApp.getActiveDocument().getBody(),
paragraphs = body.getParagraphs();
var result = getHeadersFromParagraphs(paragraphs, level);
return JSON.stringify(result.headers);
}
person
Fred
schedule
06.05.2014
Как мне его использовать? Я думаю, что не могу использовать код JavaScript в файлах .gs prntscr.com/3gqzx8
- person iron-viper; 06.05.2014
Можете ли вы помочь мне использовать это мой документ, я буду вам очень признателен. ты хороший человек.
- person iron-viper; 06.05.2014
Я должен был быть яснее - приведенный выше код создает список заголовков в документе. В связанном документе есть дополнительный код для создания боковой панели.
- person Fred; 06.05.2014
Большое спасибо за вашу помощь и за то, что откликнулись.
- person iron-viper; 07.05.2014
Как я могу составить список на боковой панели, щелкнув раскрывающийся список подходящих заголовков и erarhii?
- person iron-viper; 07.05.2014
Мне нужны заголовки древовидного меню на боковой панели. Что сохраняет иерархию.
- person iron-viper; 07.05.2014
Скрипт уже создает поддеревья для нижних уровней заголовков. Ищете разборные уровни?
- person Fred; 07.05.2014
Вам больше не нужно прибегать к сторонним надстройкам, поскольку Google принял эту функцию и выпустил ее 09.03.2016.
Просто отметьте Tools > Document outline
вариант, и все готово.
person
David Salamon
schedule
11.03.2016
К настоящему времени этот ответ может быть устаревшим, но в Документах Google есть дополнение, которое позволяет вам это делать. Просто нажмите «Надстройки» и выполните поиск по «оглавлению» или «навигатору документов» - вы найдете надстройку, которая создаст вам панель навигации, как вы описали. Могут быть и другие надстройки, делающие то же самое ...
person
Dynari
schedule
23.09.2015