A perl script to convert Cisco IOS/Nexus/ASA configurations to HTML for easier comprehension

    (This is me scratching an itch of my own and hoping that sharing it
might be useful to others on this list. Apologies if it isn't)

  When I'm trying to comprehend a new or complicated Cisco router,
switch or firewall configuration an old pet-peeve of mine is how
needlessly difficult it is to follow deeply nested logic in route-maps,
ACLs, QoS policy-maps etc etc

A dim, weak voice from the past. Has advantages of the plan proposed here.

To make this a bit simpler I’ve been working on a perl script to convert
these text-based configuration files into HTML with links between the
different elements (e.g. To an access-list from the interface where it’s
applied, from policy-maps to class-maps etc), hopefully making it easier
to to follow the chain of logic via clicking links and using the forward
and back buttons in your browser to go back and forth between command
and referenced list.

We used to (using a HB lead in a draftsman' lead holder and a stack for Forms SN 457* (Blank Spread Sheet, 11 x 17) sorted all of the requests, demands and other requirements into logical packages.

Then, using the blank back side of the spread sheet, we drew "flow diagrams depicting how we would code the requirements. If a section got a little complicated and tedious, we'd put a symbol on the diagram, a title that made sense and a page number.

On a new sheet, we wrote that title and that page number and drew the flow diagram for that messy bit of business.

Then we would "desk check" the flow diagrams and in the process, note on the requirements sheet (s) the diagram number (and entry point if there was more than one) where the requirement was satisfied.

Then we would start with a new sheet working from the flow diagrams, write the code for the machine (noting on the flow diagram the page and line number in the code where the operation on the flow diagram occurred.

There are several advantages to this approach--hard to leave important stuff out, hard to include code that is never exercised, hard to make changes to the code because you don't know how to make HTML depict it correctly.

No need to lecture me on the folly of the old ways--it is why I got fired for being too old.