embedInHtmlSource static method

String embedInHtmlSource({
  1. required String source,
  2. required String whatToEmbed,
  3. required EmbedPosition position,
})

Generic function to embed anything inside HTML source, at the specified position.

Implementation

static String embedInHtmlSource({
  required String source,
  required String whatToEmbed,
  required EmbedPosition position,
}) {
  switch (position) {
    case EmbedPosition.belowHeadOpenTag:
      return injectAsChildOf('head', source, whatToEmbed);
    case EmbedPosition.belowBodyOpenTag:
      return injectAsChildOf('body', source, whatToEmbed);
    case EmbedPosition.aboveHeadCloseTag:
      final indexToSplit = source.indexOf('</head>');
      final splitSource1 = source.substring(0, indexToSplit);
      final splitSource2 = source.substring(indexToSplit);

      return '$splitSource1$whatToEmbed\n$splitSource2';
    case EmbedPosition.aboveBodyCloseTag:
      final indexToSplit = source.indexOf('</body>');
      final splitSource1 = source.substring(0, indexToSplit);
      final splitSource2 = source.substring(indexToSplit);

      return '$splitSource1$whatToEmbed\n$splitSource2';
  }
}