當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript index-next.getTextContent函數代碼示例

本文整理匯總了TypeScript中dom5/lib/index-next.getTextContent函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript getTextContent函數的具體用法?TypeScript getTextContent怎麽用?TypeScript getTextContent使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了getTextContent函數的10個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: ScannedScriptTagImport

    const myVisitor: HtmlVisitor = (node) => {
      if (isJsScriptNode(node)) {
        const src =
            dom5.getAttribute(node, 'src') as FileRelativeUrl | undefined;
        if (src) {
          features.push(new ScannedScriptTagImport(
              src,
              document.sourceRangeForNode(node)!,
              document.sourceRangeForAttributeValue(node, 'src')!,
              {language: 'html', node, containingDocument: document},
              dom5.getAttribute(node, 'type') === 'module'));
        } else {
          const locationOffset =
              getLocationOffsetOfStartOfTextContent(node, document);
          const attachedCommentText = getAttachedCommentText(node) || '';
          const contents = dom5.getTextContent(node);

          features.push(new ScannedInlineDocument(
              'js',
              contents,
              locationOffset,
              attachedCommentText,
              document.sourceRangeForNode(node)!,
              {language: 'html', node, containingDocument: document}));
        }
      }
    };
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:27,代碼來源:html-script-scanner.ts

示例2: transformEsModuleToAmd

function transformEsModuleToAmd(
    script: dom5.Node, idx: number, jsOptions: JsTransformOptions|undefined) {
  // We're not a module anymore.
  dom5.removeAttribute(script, 'type');

  if (scriptWasSplitByHtmlSplitter(script)) {
    // Nothing else to do here. If we're using HtmlSplitter, the JsTransformer
    // is responsible for doing this transformation.
    return;
  }

  const isExternal = dom5.hasAttribute(script, 'src');
  if (isExternal) {
    const src = dom5.getAttribute(script, 'src');
    dom5.removeAttribute(script, 'src');
    dom5.setTextContent(script, `define(['${src}']);`);

  } else {
    // Transform inline scripts with the AMD Babel plugin transformer.
    const newJs = jsTransform(dom5.getTextContent(script), {
      ...jsOptions,
      transformModulesToAmd: true,
      moduleScriptIdx: idx,
    });
    dom5.setTextContent(script, newJs);
  }
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:27,代碼來源:html-transform.ts

示例3: html

export function html(text: string) {
  const ast = parse5.parse(text);
  const styleNodes = dom5.queryAll(
      ast, isInlineStyle, dom5.childNodesIncludeTemplate);
  for (const styleNode of styleNodes) {
    const text = dom5.getTextContent(styleNode);
    dom5.setTextContent(styleNode, css(text));
  }
  return parse5.serialize(ast);
}
開發者ID:poehlmann,項目名稱:EvaluacionDiferencialDeLaMemoria,代碼行數:10,代碼來源:index.ts

示例4: addIndentation

export function addIndentation(
    textNode: dom5.Node, additionalIndentation = '  ') {
  if (!dom5.isTextNode(textNode)) {
    return;
  }
  const text = dom5.getTextContent(textNode);
  const indentedText =
      text.split('\n')
          .map((line) => {
            return line.length > 0 ? additionalIndentation + line : line;
          })
          .join('\n');
  dom5.setTextContent(textNode, indentedText);
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:14,代碼來源:util.ts

示例5: replaceGiantScripts

/**
 * Replaces the Babel helpers, Require.js AMD loader, and WCT hack inline
 * scripts into just some comments, to make test comparison simpler.
 */
function replaceGiantScripts(html: string): string {
  const document = parse5.parse(html);
  for (const script of dom5.queryAll(
           document, dom5.predicates.hasTagName('script'))) {
    const js = dom5.getTextContent(script);
    if (js.includes('var requirejs,require')) {
      dom5.setTextContent(script, '// amd loader');
    } else if (js.includes('babelHelpers={}')) {
      dom5.setTextContent(script, '// babel helpers');
    } else if (js.includes('window._wctCallback =')) {
      dom5.setTextContent(script, '// wct hack 1/2');
    } else if (js.includes('window._wctCallback()')) {
      dom5.setTextContent(script, '// wct hack 2/2');
    }
  }
  return parse5.serialize(document);
}
開發者ID:Polymer,項目名稱:polymer-build,代碼行數:21,代碼來源:html-transform_test.ts

示例6: removeTrailingWhitespace

export function removeTrailingWhitespace(
    textNode: dom5.Node, parsedDocument: ParsedHtmlDocument) {
  const prevText = dom5.getTextContent(textNode);
  const match = prevText.match(/\n?[ \t]*$/);
  if (!match) {
    return;
  }
  const range = parsedDocument.sourceRangeForNode(textNode)!;
  const lengthOfPreviousLine =
      parsedDocument.newlineIndexes[range.end.line - 1] -
      (parsedDocument.newlineIndexes[range.end.line - 2] || -1) - 1;
  const newRange: SourceRange = {
    ...range,
    start: {
      column: lengthOfPreviousLine,
      line: range.end.line - 1,
    }
  };
  return {range: newRange, replacementText: ''};
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:20,代碼來源:util.ts

示例7: replaceGiantScripts

/**
 * Replaces the Babel helpers, Require.js AMD loader, and WCT hack inline
 * scripts into just some comments, to make test comparison simpler.
 */
function replaceGiantScripts(html: string): string {
  const document = parse5.parse(html);
  for (const script of dom5.queryAll(
           document, dom5.predicates.hasTagName('script'))) {
    const js = dom5.getTextContent(script);
    if (js.includes('window.define=')) {
      dom5.setTextContent(script, '// amd loader');
    } else if (js.includes('wrapNativeSuper=')) {
      dom5.setTextContent(script, '// babel helpers full');
    } else if (js.includes('interopRequireDefault=')) {
      dom5.setTextContent(script, '// babel helpers amd');
    } else if (js.includes('regeneratorRuntime')) {
      dom5.setTextContent(script, '// regenerator runtime');
    } else if (js.includes('window._wctCallback =')) {
      dom5.setTextContent(script, '// wct hack 1/2');
    } else if (js.includes('window._wctCallback()')) {
      dom5.setTextContent(script, '// wct hack 2/2');
    }
  }
  return parse5.serialize(document);
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:25,代碼來源:html-transform_test.ts

示例8: transformEsModuleToAmd

function transformEsModuleToAmd(
    script: dom5.Node, idx: number, jsOptions: JsTransformOptions|undefined) {
  // We're not a module anymore.
  dom5.removeAttribute(script, 'type');

  if (scriptWasSplitByHtmlSplitter(script)) {
    // Nothing else to do here. If we're using HtmlSplitter, the JsTransformer
    // is responsible for doing this transformation.
    return;
  }

  // Module scripts execute in order. AMD modules don't necessarily preserve
  // this ordering. To emulate the ordering, we construct an artificial
  // dependency chain between all module scripts on the page.
  const generatedModule = generateModuleName(idx);
  const previousGeneratedModule =
      idx === 0 ? undefined : generateModuleName(idx - 1);

  const isExternal = dom5.hasAttribute(script, 'src');
  if (isExternal) {
    const deps = [];
    if (previousGeneratedModule !== undefined) {
      deps.push(previousGeneratedModule);
    }
    const externalSrc = dom5.getAttribute(script, 'src');
    deps.push(externalSrc);
    const depsStr = deps.map((dep) => `'${dep}'`).join(', ');
    dom5.removeAttribute(script, 'src');
    dom5.setTextContent(script, `define('${generatedModule}', [${depsStr}]);`);

  } else {
    // Transform inline scripts with the AMD Babel plugin transformer.
    const newJs = jsTransform(dom5.getTextContent(script), {
      ...jsOptions,
      transformModulesToAmd: true,
      moduleScriptIdx: idx,
    });
    dom5.setTextContent(script, newJs);
  }
}
開發者ID:Polymer,項目名稱:polymer-build,代碼行數:40,代碼來源:html-transform.ts

示例9: getIndentationInside

export function getIndentationInside(parentNode: dom5.Node) {
  if (!parentNode.childNodes || parentNode.childNodes.length === 0) {
    return '';
  }
  const firstChild = parentNode.childNodes[0];
  if (!dom5.isTextNode(firstChild)) {
    return '';
  }
  const text = dom5.getTextContent(firstChild);
  const match = text.match(/(^|\n)([ \t]+)/);
  if (!match) {
    return '';
  }
  // If the it's an empty node with just one line of whitespace, like this:
  //     <div>
  //     </div>
  // Then the indentation of actual content inside is one level deeper than
  // the whitespace on that second line.
  if (parentNode.childNodes.length === 1 && text.match(/^\n[ \t]+$/)) {
    return match[2] + '  ';
  }
  return match[2];
}
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:23,代碼來源:util.ts

示例10: async

 const visitor = async (node: ASTNode) => {
   if (isStyleNode(node)) {
     const tagName = node.nodeName;
     if (tagName === 'link') {
       const href = dom5.getAttribute(node, 'href')! as FileRelativeUrl;
       features.push(new ScannedImport(
           'html-style',
           href,
           document.sourceRangeForNode(node)!,
           document.sourceRangeForAttributeValue(node, 'href')!,
           {language: 'html', node, containingDocument: document},
           true));
     } else {
       const contents = dom5.getTextContent(node);
       const locationOffset =
           getLocationOffsetOfStartOfTextContent(node, document);
       const commentText = getAttachedCommentText(node) || '';
       features.push(new ScannedInlineDocument(
           'css',
           contents,
           locationOffset,
           commentText,
           document.sourceRangeForNode(node)!,
           {language: 'html', node, containingDocument: document}));
     }
   }
   // Descend into templates.
   if (node.tagName === 'template') {
     const content = treeAdapters.default.getTemplateContent(node);
     if (content) {
       for (const n of dom5.depthFirst(content)) {
         visitor(n);
       }
     }
   }
 };
開發者ID:MehdiRaash,項目名稱:tools,代碼行數:36,代碼來源:html-style-scanner.ts


注:本文中的dom5/lib/index-next.getTextContent函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。