blob: 5e7f1749c7cc22e3e4a6d93a51d2d2c49c4a24db [file] [log] [blame] [raw]
# -*- coding: utf-8 -*-
import os
import argparse
parser = argparse.ArgumentParser(description='Docenizes HTML version of the official Intel Asm PDFs')
parser.add_argument('-i', '--inputfolder', type=str, help='Folder where the input files reside as .html. Default is current folder', default='./')
parser.add_argument('-o', '--outputpath', type=str, help='Final path of the .js file. Default is ./asm-docs.js', default='./asm-docs.js')
args = parser.parse_args()
with open(args.outputpath, 'w') as f:
f.write('var tokens = { \n')
for root, dirs, files in os.walk(args.inputfolder):
for file in files:
if file.endswith(".html"):
getDesc = False
with open(os.path.join(root, file)) as f2:
file = file.split('.')[0]
for asm in file.split(':'):
tooltip = ''
helps = ''
isFirst = True
for line in f2.readlines():
if getDesc and "<h2>" in line:
f.write(' "' + asm +'": {"html": "' + helps + '</span>", "url": "' + file + '.html", "tooltip": "' + tooltip + '"},\n')
break
if getDesc:
line = line[:-1]
escapedLine = line.replace('“', "'").replace('"', "'")
helps += escapedLine.replace('\n', '<br>')
if isFirst:
tooltip = escapedLine.replace('<p>', '').replace('</p>', '')
helps += "<a href='#' data-toggle='collapse' data-target='#more' onclick='$(this).remove();'>View more...</a><span id='more' class='collapse'>"
isFirst = False
if line == "<h2>Description</h2>\n":
getDesc = True
f.seek(-2, os.SEEK_END)
f.truncate()
f.write('\n};\n\
function getAsmOpcode(opcode) {\n\
if (!opcode) return;\n\
var token = tokens[opcode.toUpperCase()];\n\
if (token) token.opcode = opcode;\n\
return token;\n\
}\n\
\n\
module.exports = {\n\
getAsmOpcode: getAsmOpcode\n\
};\n')