Community
    • Login

    Renaming <title> tags using HTML file names

    Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
    8 Posts 3 Posters 2.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Kevin WoodK
      Kevin Wood
      last edited by

      I would like to Batch Title hundreds of html files using there File Names with Spaces Added & the Extension removed.

      AlmostPersuaded.html “File to be Titled”

      I would like the Title tag to be, with Spaces in front of the Capitol letters & the Extension .html Removed:

      Almost Persuaded “Title for tag”

      Renaming utilities & all searches seem to do the reverse. Can this be done with Notepad++ or a plugin to it. I have done some simply amazing things with Notepad++ so I know it is capable!

      Any help, thoughts or ideas appreciated. Thank You, Kevin

      1 Reply Last reply Reply Quote 0
      • Kevin WoodK
        Kevin Wood
        last edited by

        I see some possible hope using NppExec plugin if anyone could show the how?

        1 Reply Last reply Reply Quote 0
        • Kevin WoodK
          Kevin Wood
          last edited by

          The empty <title> </title> tag is in the html files already. So if the files name could have spaces before the Capitol letters & the extension .html removed. The part about Replacing “<title>” with “<title>Almost Persuaded” should be the easier part.

          1 Reply Last reply Reply Quote 0
          • PeterJonesP
            PeterJones
            last edited by

            You might be able to do it within Notepad++ using one of the scripting plugins (probably harder in NppExec, really), but since it wouldn’t likely be making use of the uniqueness, you could do it directly in your language of choice, without the Notepad++ overhead.

            ------

            • Scripting Plugins Links
              • PythonScript
                • PythonScript HOME
                • PythonScript DOWNLOAD
                • HELP = Plugins > Python Script > Context-Help
                • Getting Started with Python
              • LuaScript
                • LuaScript HOME
                • LuaScript DOWNLOAD
              • jN: JavaScript for Notepad++
                • jN WIKI
                • jN DOWNLOAD
              • NppExec

            ======

            If you had gnu/linux like commands in your path (for example, GnuWin32 from http://gnuwin32.sourceforge.net/packages.html, or using git-bash, or windows 10 pro’s new linux subsystem), it could probably be done through the command line, using a for loop and an in-place sed command.

            If you wanted a standalone programming language route (like Perl, Python, or Lua), here is an example Perl script I just whipped up in a few minutes, using strawberry perl. (I made it verbose, so that it was easily commented, so you could translate to another language of your choice, if you don’t have/want a perl interpreter):

            #!perl
            # assuming you saved this script as c:\path\to\script.pl
            # assuming strawberry perl [https://strawberryperl.com/] (or similar) is in your path
            # open cmd.exe in the directory with the files, and run
            #       perl c:\path\to\script.pl
            use autodie;    # open and similar commands will give meaningful errors automatically
            
            foreach $f ( <*.html> ) {                   # loop through the filenames in the current directory
                my $ft = $f;                            # grab the name of the file
                    $ft =~ s/.html//;                   #   remove the .html at the end
                    $ft =~ s/(?-i)\S\K([A-Z])/ $1/g;    #   look for all capitals with a non-space character before it, and put a space before  -- this is using a regular expression syntax similar to Notepad++'s PCRE syntax
                    warn "ft => $ft\n";
                open my $in_fh, '<', $f;                # open the current file for input
                open my $out_fh, '>', "$f.tmp";         # open a .tmp for output
                local $/ = "<title>";                   # we'll tell perl to grab everything until the first <title> start...
                my $str = <$in_fh>;                     # ... and grab it ...
                print {$out_fh} $str;                   # ... and print it to the output
                $/ = "</title>";                        # now we want to grab until the end of this </title>
                $str = <$in_fh>;                        # grab until the end  </title>
                print {$out_fh} "$ft</title>";          #
                $/ = "\n";                              # now grab normal lines...
                print {$out_fh} $_ while $_ = <$in_fh>; # pipe through the rest of the file unchanged
                close $out_fh;
                close $in_fh;
                rename("$f.tmp", $f);                   # rename .tmp to the original name...
            }
            
            Kevin WoodK 1 Reply Last reply Reply Quote 4
            • Kevin WoodK
              Kevin Wood
              last edited by

              Wow Thank You, I’ll give it a shot. I spent the whole day today trying to do a macro. It seems to work however each time Copy Current Filename to Clipboard is used it always seems to be from the time before. Even though that file was saved & moved to the next tab. I do not get that. :(

              Eko palypseE 1 Reply Last reply Reply Quote 0
              • Eko palypseE
                Eko palypse @Kevin Wood
                last edited by

                @Kevin-Wood

                using a macro together with the clipboard is only useful if you need the current string over and over again.
                A macro doesn’t save the action “get clipbaord content”, it saves the real string which is in the clipboard at that time.
                You can check this in the shortcuts.xml file.

                Eko

                Kevin WoodK 1 Reply Last reply Reply Quote 3
                • Kevin WoodK
                  Kevin Wood @Eko palypse
                  last edited by

                  @Eko-palypse Thank You, after many hours of tryin’ that’s kind of what I was figuring. :)

                  1 Reply Last reply Reply Quote 0
                  • Kevin WoodK
                    Kevin Wood @PeterJones
                    last edited by Kevin Wood

                    @PeterJones I can not Thank You enough! I started to refurbish a mainly East Coast, Nova Scotia Music website just for fun “No Profit”. This script was used in the Retro Lyrics section. You can check out the site here: RetroLyrics section http://www.rbops.com/RetroLyrics/SevenSpanishAngels.html)

                    Originally 20 years ago the Lyrics were RTF files with DOC extensions that even if you downloaded them, you could not open them. ha ha So you can imagine after some repair to these files I am impressed. I made most of the site mobile friendly & installed many MP3 players on the artists pages.

                    All pretty much retired players who had all pretty much played with groups you grew up listening to. Some good ole music.

                    Thank You Mr. PeterJones & I will definitely be learning some Perl from your example!

                    1 Reply Last reply Reply Quote 2
                    • PeterJonesP PeterJones referenced this topic on
                    • PeterJonesP PeterJones referenced this topic on
                    • First post
                      Last post
                    The Community of users of the Notepad++ text editor.
                    Powered by NodeBB | Contributors