25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

39 lines
1.0 KiB

  1. // Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See LICENSE file in the project root for full license information.
  2. var extension = require('./toc.extension.js')
  3. exports.transform = function (model) {
  4. if (extension && extension.preTransform) {
  5. model = extension.preTransform(model);
  6. }
  7. transformItem(model, 1);
  8. if (model.items && model.items.length > 0) model.leaf = false;
  9. model.title = "目录";
  10. model._disableToc = true;
  11. if (extension && extension.postTransform) {
  12. model = extension.postTransform(model);
  13. }
  14. return model;
  15. function transformItem(item, level) {
  16. // set to null incase mustache looks up
  17. item.topicHref = item.topicHref || null;
  18. item.tocHref = item.tocHref || null;
  19. item.name = item.name || null;
  20. item.level = level;
  21. if (item.items && item.items.length > 0) {
  22. var length = item.items.length;
  23. for (var i = 0; i < length; i++) {
  24. transformItem(item.items[i], level + 1);
  25. };
  26. } else {
  27. item.items = [];
  28. item.leaf = true;
  29. }
  30. }
  31. }